美文网首页
map和forEach

map和forEach

作者: An的杂货铺 | 来源:发表于2019-07-23 10:24 被阅读0次

使用map来对复杂数据进行遍历更加高效

var data = [

{'name':"北京",'child':[{'name':'安定门'},{'name':'天安门'}]},

{'name':"天津",'child':[{'name':'静海'},{'name':'津南'}]}

];

var province = data.map(res=>{

        return res.name;

})

console.log(province);//['北京','天津']

//以上相当于

var provinceone = data.map(function(data){

      return data.name

})

console.log(provinceone);//['北京','天津']

var city = data[0].child.map(res=>{

      return res.name

});

console.log(city)//['安定门','天安门']

var cityone = data[1].child.map(res=>{

return res.name

})

console.log(cityone);//['静海','津南']

//使用map对数据进行处理更高效

map与forEach之间的差异

    //map

    var ary = [12,23,24,42,1]; 

    var res = ary.map(function (item,index,input) { 

    return item*10; 

});

console.log(res);//-->[120,230,240,420,10];  原数组拷贝了一份,并进行了修改

console.log(ary);//-->[12,23,24,42,1];  原数组并未发生变化

//forEach

var aryone = [12,23,24,42,1]; 

var resone = aryone.forEach(function (item,index,input) { 

      input[index] = item*10; 

}) 

console.log(resone);//--> undefined; 

console.log(aryone);//--> 通过数组索引改变了原数组;[120,230,240,420,10]

// 参数:item数组中的当前项,index当前项的索引,input原始数组;

  //    区别:map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);

//    forEach 数组中有几项,那么传递进去的匿名回调函数就需要执行几次;理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组

var m = new Map();

m.set(1, "black");

m.set(2, "red");

m.set("colors", 2);

console.log(m)

//方法一:

m.forEach(function (item) {

    console.log(item.toString());

});

// 输出:

// black

// red

// 2

//方法二:

m.forEach(function (value, key, map) {

    console.log(value)

})

// 输出:

// black

// red

// 2

//方法三:

for (var [key, value] of m) {

  console.log(key + ' = ' + value);

}

// 输出:

// 1 = black

// 2 = red

// colors  = 2

相关文章

  • Js数组遍历对原数组的影响及返回值

    1.map和forEach 结果:map和forEach都不改变原数组,map返回一个新数组,forEach没有返...

  • js forEach map &&&

    原生JS forEach()和map()遍历的区别以及兼容写法 一、原生JS forEach() 和map()**...

  • 36. 常用的高阶函数

    forEach 、map 利用 forEach 和 map 对数组进行操作 可以利用 map 对数组的元素进行运算...

  • map 和forEach用法(添加parseInt的小尾巴)

    forEach: map map:和forEach非常相似,都是用来遍历数组中的每一项;区别:map的回调函数中支...

  • 初探 forEach() 方法

    Map对象 Map.prototype.forEach() forEach() 方法将会以插入顺序对 Map 对象...

  • for、forEach和map比较

    for、forEach和map比较 性能比较 for循环是在有js的时候就有了,forEach和map是es5的时...

  • 【JS】map遍历数组

    这里的map不是地图的意思,而是“映射”。 map的使用方法和forEach类似。 和forEach不同的是,ma...

  • map()和forEach()

    一、相同点 1. 都是循环遍历数组中的每一项; 2. map和forEach方法里每次执行匿名函数都支持三个参数,...

  • forEach和map

    在foreach函数中使用return break,其效果等同于continue,只能终止一次循环,并不能起到跳出...

  • forEach()和map()

    自写forEach() 自写map()

网友评论

      本文标题:map和forEach

      本文链接:https://www.haomeiwen.com/subject/atanlctx.html