遍历数组全部元素,利用回调函数对数组进行操作,自动遍历整个数组,且无法break中途跳出循环,不可控,不支持return操作输出,return只用于控制循环是否跳出当前循环。
回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身
var ary = [12,23,24,42,1]; var res = ary.forEach(function (item,index,input) { input[index] = item*10; }) console.log(res);//--> undefined; 没有返回值 console.log(ary);//--> 通过数组索引改变了原数组; forEach() 对于空数组是不会执行回调函数的forEach() 需要用 return 跳过循环中的一个迭代,跳过之后会执行下一个迭代。 这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
every()与some()方法都是JS中数组的迭代方法, 只返回布尔值。
every()
判断数组中是否每个元素都满足条件 只有都满足条件才返回true; 只要有一个不满足就返回false;
some()
判断数组中是否至少有一个元素满足条件 只要有一个满足就返回true 只有都不满足时才返回false // 判断数组arr1是否全是偶数 // 判断数组arr2是否至少有一个偶数
var arr1=[1, 2, 3, 4, 5]; var arr2=[1, 4, 6, 8, 10]; console.log( arr1.every(function(value, index, array){ return value % 2 == 0; }) ); // false console.log( arr2.some(function(value, index, array){ return value % 2 == 0; }) ); // true