1:統(tǒng)計(jì)出數(shù)組中出現(xiàn)最多的值
(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)//結(jié)果:{name: 3, age: 1, long: 2, short: 1}

image.png
由于設(shè)置了迭代初始值,pre的第一個(gè)值是一個(gè)空對(duì)象,此時(shí)cur為name,然后進(jìn)行判斷,發(fā)現(xiàn)在pre中沒有name屬性,所以就將name對(duì)應(yīng)的屬性值賦為1;
后面沒有重復(fù)的是一樣的道理,如果碰到重復(fù)值,就會(huì)將該屬性值加1,這樣就能計(jì)算元素重復(fù)的次數(shù)了。
2:刪除數(shù)組中的假值
我們時(shí)常需要在處理數(shù)據(jù)的時(shí)候要去掉假值。在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:數(shù)組如何快速轉(zhuǎn)變成對(duì)象存儲(chǔ)(擴(kuò)展運(yùn)算符)
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"});