数组原型方法的分类:
一、会改变调用它们的对象自身的值
二、不会改变调用它们的对象自身的值
三、遍历方法
三、12个遍历方法
forEach(callback,thisObj)
作用:指定数组的每项元素都执行一次传入的函数,返回值为undefined。
参数:callback ->为数组中每个元素执行的函数,该函数接收三个参数:
value 当前元素的值
index 当前元素的索引
array 数组本身
thisObj -> 可选参数,用来当做callback 函数内的this对象。
var array = [1, 3, 5];
var obj = {name:'cc'};
var sReturn = array.forEach(function(value, index, array){
array[index] = value * value;
console.log(this.name); // cc被打印了三次
},obj);
console.log(array); // [1, 9, 25], 可以在回调函数中改变原数组
console.log(sReturn); // undefined
forEach无法直接退出循环,只能使用return 来达到for循环中continue的效果。
var array =['a','b','c','d']
array.forEach(function(item){
if(item === 'a'){
return; // 这里只能使用return跳过当前元素处理
}
console.log(item); // b c d
})
forEach处理类数组对象。
var o = {0:1, 1:3, 2:5, length:3};
Array.prototype.forEach.call(o,function(value, index, obj){
obj[index] = value * value;
});
console.log(o); // {0: 1, 1: 9, 2: 25, length: 3}
every(callback,thisObj)
作用:使用传入的函数测试所有元素,只要其中有一个函数返回值为 false,那么结果为 false;只有全部返回 true,才为 true。
参数:callback -> 用来测试每个元