map
二者的都是只能对数组进行循环,其中,map需要定义一个变量去接收,map不改变原来的数组,相当于复制出来一个数组,map可以return出来返回值,return的是什么值就是把复制出来的数组中的对应项变为什么值。map接收一个函数作为参数,函数的三个参数分别代表当前项,索引(从0开始)
var testArr = [11, 12, 13, 14];
var newArr = testArr.map(function (item, index, arr) {
console.log("item", item);
console.log("index", index);
console.log("arr", arr);
return item * 10;
});
console.log("newArr", newArr); //[110,120,130,140]
console.log("testArr", testArr); //[11,12,13,14]
forEach
foreach接收函数参数的参数和map一样,不需要定义变量接收,如果定义了变量将会打印出undefined,无法终止循环,不能return出返回值,会改变原始数组,
var testArr = [11, 12, 13, 14];
var newArr = testArr.forEach(function (item, index, arr) {
arr[index]=item* 10;
});
console.log("testArr", testArr); //[110,120,130,140]
console.log("newArr", newArr); //undefined
some
参数有两个,callback,thisValue,callback是用来检测数组中的每一个元素,对数组中的每一个元素都执行一次callback,该元素存在返回true,不再执行下去,否则返回false,数组中的空元素不执行callback,some不会改变原始数组
var testArr = [9, 10, 11, 12, 13, 14];
function someTest(item, index, arr) {
console.log("item", item);
console.log("index", index);
console.log("arr", arr);
return item > 10;
}
testArr.some(someTest);
console.log("testArr", testArr);
console.log("testArr.some(some)", testArr.some(someTest));