map,forEach与some对比

map,forEach与some

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));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值