javascript 数组几个有用的方法-过滤,遍历
2014-07-31 10:17
801 查看
1.过滤方法
index参数是当前的匹配元素在原来的元素集合中的索引。
如果您对上面的解释不清楚的话(本人表达能力有点欠缺~^_^),可以好好看看下面的例子:
filter()会跳过稀疏数组中缺少的元素,他的返回值总是稠密的
3.reduce()
reduce()需要两个参数,第一个是执行化简操作的函数,这里是通过加法,乘法,或取最大值的方法组合两个值,第二个参数是一个传递给函数的初始值
第一个参数是需要搜索的值,第二个参数是可选的值:他指定数组中的一个索引,从哪里开始搜索
a=[5,4,3,2,1]; everyother=a.filter(function(i){return i%2==0}); console.log(everyother,a) //[4, 2] [5, 4, 3, 2, 1] everyother=a.filter(function(x,i){return i%2==0}); console.log(everyother,a) //[5, 3, 1] [5, 4, 3, 2, 1] .filter( function(index) )这种使用方法是对匹配的元素进行遍历,如果function(index)返回的值为true的话,那么这个元素就被选中,如果返回值为false的话,那么这个元素就不被选中
index参数是当前的匹配元素在原来的元素集合中的索引。
如果您对上面的解释不清楚的话(本人表达能力有点欠缺~^_^),可以好好看看下面的例子:
<div id="first"></div> <div id="second"></div> <div id="third"></div> <div id="fourth"></div> <div id="fifth"></div> <div id="sixth"></div>jquery代码:
$("div").filter(function(index) { return index == 1 || $(this).attr("id") == "fourth"; }).css("border", "5px double blue");上面代码的结果是 第二个div元素和 id为“fourth”的div元素的边框变成了双线颜色为蓝色
filter()会跳过稀疏数组中缺少的元素,他的返回值总是稠密的
b=[5,4,3,2,1,null,undefined,,]; dense=b.filter(function(){return true;}) //压缩稀疏数组的空缺 d=b.filter(function(x){return x!==undefined && x!=null;}); //压缩空缺并删除underfined和null元素 console.log(dense,b,d) //[5, 4, 3, 2, 1, null, undefined] [5, 4, 3, 2, 1, null, undefined, undefined] [5, 4, 3, 2, 1]2.every()和some() 数组的逻辑判定,返回true或false
a=[1,2,3,4,5]; a.every(function(x){return x<10;}) //true;所有的值都小于10 a.every(function(x){return x%2===0;}) //false;不是所有的值都是偶数some()就像数学中的“存在”量词,当数组中至少有一个元素调用判断函数返回true,并且当且仅当所有的元素来判定时返回false
a=[1,2,3,4,5]; a.some(function(x){return x%2===0;}) //true:a 含有偶数值 a.some(isNaN) //false:a不包含非数值
3.reduce()
reduce()需要两个参数,第一个是执行化简操作的函数,这里是通过加法,乘法,或取最大值的方法组合两个值,第二个参数是一个传递给函数的初始值
a=[1,2,3,4,5]; sum=a.reduce(function(x,y){return x+y},0); //15 product=a.reduce(function(x,y){return x*y},1); //120 max=a.reduce(function(x,y){return (x>y)?x:y; }); //54.indexOf()和lastIndexOf() 搜索整个数组中具有给定值的元素,返回第一个元素的索引或者没有找到返回-1
第一个参数是需要搜索的值,第二个参数是可选的值:他指定数组中的一个索引,从哪里开始搜索
a=[0,1,2,1,0]; a.indexOf(1) //1:a[1]=1 a.lastIndexOf(1) //3:a[3]=1 a.indexOf(3) //-1:没有值为3的元素 a=[0,1,2,1,0,1,3]; pos=a.indexOf(1,2); //3:a[3]=1,从索引为2的地方开始搜索 //在数组中查找所有出现的的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1) break; results.push(pos); pos++; } return results; } findall(a,1)4.map()将调用的数组的每个元素传递给指定的函数,并返回一个新数组,它包含函数的返回值
a=[1,2,3] b=a.map(function(x){return x*x;}); //b是[1,4,9]5.forEach()方法,从头至尾遍历数组,为每一个元素调用指定的函数,它可以接收三个参数:数组元素、元素的索引、和数组本身,如果只关心数组元素的值,可以只写一个参数,其它参数可以忽略!
var data=[1,2,3,4,5]; var sum=0; data.forEach(function(value){sum+=value;}); //只有一个参数,数组元素,累加 data.forEach(function(v,i,a){a[i]=v+1;}); data=[2,3,4,5,6]
相关文章推荐
- javascript遍历数组的两种方法
- 遍历Javascript数组的一种方法!
- JavaScript中遍历数组中元素的两种方法
- javascript遍历数组的方法以及for…of
- javascript 四种数组遍历方法
- JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
- javascript1.6数组新特性和jquery的几个工具方法
- javaScript 数组遍历方法总结
- JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
- Javascript创建空对象和空数组的几个方法和差别
- JavaScript1.6数组新特性和JQuery的几个工具方法
- javascript数组的几个常用方法
- JavaScript 数组几个比较有用的函数
- Javascript当中新增的几个实用操作数组的方法
- JavaScript1.6数组新特性和JQuery的几个工具方法
- JavaScript 1.6 引入了几个新的Array (数组)方法
- JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
- javascript遍历数组的两种方法
- lumbda表达式的几个例子(lumbda对集合遍历、过滤、转换、合并、创建、最大、最小、平均、总和值、并行流、将数组转换成流)
- iOS 数组遍历查询的几个方法