javascript 数组操作技巧

2021-07-13  本文已影响0人  何家一枝花

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}


image.png

由于设置了迭代初始值,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"});
上一篇下一篇

猜你喜欢

热点阅读