ES5里引入了一些新的数组方法。这些方法可以分为两组: 迭代方法和项的定位。
兼容性:chrome,firefox,safari3,及ie8以上都支持
1. every
查询数组中的每一项是否匹配某个条件。传入的函数必须每个参数返回true, 方法才能返回true。返回值是boolean类型
2. some
查询数组中的任意一项是否匹配某个条件。与上面的every是一对好基友。它表示只要有哪怕一个元素让传入的函数返回true, 则返回true。返回值也是boolean类型
3. filter
在每个数组上运行给定的函数,返回令指定函数为true的元素。
4. map
返回一个数组,但是数组的内容等于传入函数对于每个元素的返回值。
5. forEach
遍历每个数组项,没有返回值
6. indexOf、lastIndexOf
代码:
var arr = [{
name:'kimi',
age:3,
},{
name:'anglar',
age:4,
},{
name:'石头',
age:5,
},{
name:'小燕子',
age:20,
},{
name:'紫薇',
age:30,
},{
name:'容嬷嬷',
age:50,
}
];
var isEvery = arr.every(function(item,index, array){
return (item.age >10 );
})
console.log(isEvery); //false
var isSome = arr.some(function(item,index, array){
return (item.age > 10);
})
console.log(isSome); //true
var filterResult = arr.filter(function(item, index, array){
return (item.age > 10 );
})
console.log(filterResult);
//[{name:'小燕子',age:20},{name:'紫薇',age:30},{name:'容嬷嬷',age:50}]
var mapResult = arr.map(function(item, index, array){
return (item.age * 2);
})
console.log(mapResult); //[6, 8, 10, 40, 60, 100]
var obj = {name:'我', age:60}
arr.push(obj);
console.log(arr.indexOf(obj)); //6