1:统计出数组中出现最多的值
(1)
var obj ={}
var arry = ['a','b','c','c','c','c','c','c','c','d','d','d','d','e','e','e','e','a','a','a','b']
arry.map(item=>{
if(!obj[item]){
obj[item] = 1
}else{
obj[item] += 1
}
})
console.log(obj);
// {a: 4, b: 2, c: 7, d: 4, e: 4}
(2)
let arr = ['name','age','long','short','long','name','name']
let arrResult = arr.reduce((pre,cur) =>{
console.log(pre,cur)
if(cur in pre){
pre[cur]++
}else{
pre[cur] = 1
}
return pre
},{})
console.log(arrResult)//结果:{name: 3, age: 1, long: 2, short: 1}

由于设置了迭代初始值,pre的第一个值是一个空对象,此时cur为name,然后进行判断,发现在pre中没有name属性,所以就将name对应的属性值赋为1;
后面没有重复的是一样的道理,如果碰到重复值,就会将该属性值加1,这样就能计算元素重复的次数了。
2:删除数组中的假值
我们时常需要在处理数据的时候要去掉假值。在Javascript中,假值是false, 0, " ", null, NaN, undefined。
var plants = ['Saturn', 'Earth', null, undefined, false, "", NaN, 'Uranus', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter'];
var trueArr = plants.filter(Boolean);
console.log(trueArr); // ['Saturn', 'Earth','Uranus', 'Mercury','Venus', 'Earth','Mars', 'Jupiter']
3:数组如何快速转变成对象存储(扩展运算符)
let arr = ['key','jack','leaf','tree','cup','buddle','fish']
let obj = { ...arr }
console.log('obj',{0: "key", 1: "jack", 2: "leaf", 3: "tree", 4: "cup", 5: "buddle", 6: "fish"});
网友评论