map()函数——用于对数组或对象进行处理,并返回处理之后的数组.
前提是在map的回调函数中,没有修改item。直接return了item。 如果我们不想修改arr的值,而只需要一个newArr来存储新的值。 切记,不要在回调函数中,修改item。 即直接item.属性=值。这种操作。
如下图,如果修改了item。那么原始的arr也会改变。
1.数组转换成map键值对
var m=new Map()
var arr=['a','b','v','r']
for(var i=0i<arr.lengthi++){
m.set(arr[i],i)//转变成新的map键值对,也可以像原有键值对添加新得键值对,具有唯一性,当重复赋值,则会使用最后一个值
}
console.log(m) //{"a" =>0,"b" =>1,"v" =>2,"r" =>3}
console.log(m.get('a')) //查看键值对a的值 0
console.log(m.has('c')) //查看是否存在这个键值对,返回布尔类型的值 false
console.log(m.delete('r')) //删除r键值对 返回布尔类型 true
console.log(m) //{"a" =>0,"b" =>1,"v" =>2}
简单来说,当你需要对数组内所有元素使用同一种运算时就可以用map来做了,但是注意,map()是返回一个新数组,原数组并不会发生变化。比如,求数组平方根:
var numbers = [1, 4, 9]
var roots = numbers.map(Math.sqrt)
/* roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]*/