JavaScript 遍历数组和对象

1 前言

最近在复习 js 数据结构的知识,发现会经常使用到数组和对象的遍历,网上的资料又太多太杂,于是干脆自己总结一份常用的遍历数组和对象的方法供大家参考复习,本文主要参考了 mdn 文档、阮一峰 ES6 教程以及左小白的博客

2 数组的遍历方法

2.1 ES5 Array 5 种迭代方法

  • 检测数组元素是否满足条件 every()、some()
  • 只做遍历,无返回值 forEach()
  • 返回新数组 filter()、map()
  • reduce()、reduceRight()

// reduce() 经典应用场景:累加器 | 统计频率
// 累加器
let values = [1,2,3,3,5]
// prev: 前一次计算的结果; cur: 当前元素; index: 当前索引; 第二个参数:初始值
let sum = values.reduce((prev, cur, index, array) => {
console.log(prev, cur, index, array) // 1 1 0, 2 2 1, 4 3 2, 7 3 3, 10 5 4
return prev + cur
}, 1)
console.log(sum) //15
// 统计频率
let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']
let countedNames = names.reduce((allNames, name) => {
if (name in allNames) {
allNames[name]++;
}
else {
allNames[name] = 1;
}
return allNames;
},{})
console.log(countedNames) // { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }

<< · Back Index ·>>

发表回复

相关推荐

槍響瞭!震驚古城西安的121槍案:97年董力團夥殺11人

作者:薩沙本文章為薩沙原創,謝絕任何媒體轉載照例聲明:本文是薩沙創作的小說,聲明完畢(你不知道的大案第68講)再多申明...

· 1分钟前

定金和意向金不可退?訂金可退?還傻傻分不清?

房產交易中的定金、訂金、誠意金、意向金,相信多數人都一頭霧水,根本搞不清它們之間的關鍵區別。究竟哪些金是可以退的?哪...

· 2分钟前

川麻開局打法淺談

“ 會打麻將的人,在碼好牌的時刻就已經構思好瞭胡哪張牌瞭。” 上次的文章主要講瞭一些我自己打牌的一個思路,不迷信運氣,...

· 30分钟前

厲害!新西蘭小黑本,全球排第5名!免簽187個……

你手上的小黑本能帶你去全球哪些地方呢?全球第5!可免簽187個國傢和地區。▼今年第三季度,亨利護照指數(Henley Passport In...

· 34分钟前

Bio-Share 工艺验证 | 生物制药的工艺性能确认(PPQ)

随着工艺验证进入QbD时代,FDA的新工艺验证指南将工艺验证分为三个阶段,今天我们要讲述的工艺性能确认(PPQ)是阶段2(工艺 ...

· 1小时前