ES5 中引入的部分数组方法
- forEach
- map
- filter
- some
- every
- indexOf
- lastIndexOf
forEach, 数组遍历调用,遍历arr,参数三个 1某项, 2索引, 3整个数组
var arr = [ 'hello', ' js', { }, function () {} ];
// 遍历 数组
arr.forEach( function ( v, i, ary ) {
console.log( i + '=====' + v );
console.log( ary );
});
map 映射 语法: 数组.map( fn ) 返回一个数组, 数组的每一个元素就是 map 函数中的 fn 的返回值
var arr = [ 1, 2, 3, 4 ];
// 数学中: x -> x * x
var a = arr.map(function ( v, i ) {
return v * v;
});
// a [1, 4, 9, 16]
filter 就是筛选, 函数执行结果是 false 就弃掉, true 就收着
//语法: 数组.filter( function ( v, i ) { return true/false })
var arr = [ 1, 2, 3, 4, 5, 6 ];
// 筛选奇数
var a = arr.filter( function ( v ) { return v % 2 === 1; });
// a [ 1, 3, 5 ]
some 判断数组中至少有一个数据复合要求 就返回 true, 否则返回 false
var arr = [ '123', {}, function () {}, 123 ];
// 判断数组中至少有一个数字
var isTrue = arr.some( function ( v ) { return typeof v === 'number'; } ); // true;
every 必须满足所有元素都复合要求才会返回 true
var arr = [ 1, 2, 3, 4, 5, '6' ];
// 判断数组中每一个都是数字
var isTrue = arr.every( function ( v ) { return typeof v === 'number'; } ); } ); // false;
indexOf 在数组中查找元素, 如果含有该元素, 返回元素的需要( 索引 ), 否则返回 -1
var arr = [ 1, 2, 3, 4, 5 ];
var res = arr.indexOf( 4 ); // 要找 4
console.log( res ); // 3 找 4 在 索引为 3 找到
var arr = [ 1, 2, 3, 4, 5, 4, 5, 6 ];
var res = arr.indexOf( 4, 4 ); // 要找 4, 从索引 4开始找
console.log( res ); // 找到了 索引为 5
网友评论