js map的使用

JavaScript012

js map的使用,第1张

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]*/