一:Map。
Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
二:map的用法。
基本用法:
*set方法用于为map对象添加一个键值对。
*get方法用于为获取一个map对象的值。
*has方法用于判断map对象中是否包含某个值。
*delete方法用于删除map对象中的某个键值对。
*clear方法用于清除map对象中的所有成员。
*size属性用于返回map对象的成员总数。
例子:
const map = new Map();
const y = {p: 'Hello World'};
map.set(y, 'music')
map.get(y) // "music"
map.has(y) // true
map.delete(y) // true
map.has(y) // false
遍历方法:
keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回所有成员的遍历器。
forEach():遍历 Map 的所有成员。
三:map数组使用场景。
场景一:假设有一个A数组,要将A数组里的值以双倍形式放入B数组中。(es5和es6两种做法)
var num=[1,2,3]; //A数组
var sum=[]; //B数组
//es5
for(var i=0;i<num.length;i++){
sum.push(num[i]*2);
}
console.log("es5数组为"+sum);
// 遍历
for(var i=0;i<num.length;i++){
console.log(sum[i]);
}
// es6
var double=num.map(function(number){
return number*2;
})
console.log("es6数组为"+double);
//遍历
double.forEach(function(num){
console.log(num);
})
结果为:
补充:
push()方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法:
arrayObject.push(newelement1,newelement2,…,newelementX)
场景二:假设有一个对象数组A,要将A数组里对象的某个属性的值放入B数组中。
var arr=[
{first:"black",price:"COLOR"},
{first:"pink",price:"CUTE"}
];
var err=arr.map(function(arrs){
return arrs.first;
})
console.log(err);
结果为: