登录
原创

Javascript数组的遍历方法(forEach、map、filter、some、every等)

发布于 2020-10-22 阅读 940
  • 前端
  • JavaScript
原创

Javascript迭代方法

js中数组各种迭代方法等,总是容易记混,特地来记录下,以便以后查阅

  1. Array.forEach() 对数组中的每一项运行给定函数,无返回值。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身);
  2. Array.map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身);
  3. Array.filter() 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身)
  4. Array.some() 对数组中的每一项运行给定函数,如果该函数任一项返回true,则返回true。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身)
  5. Array.every() 对数组中的每一项运行给定函数,如果该函数每一项返回true,则返回true,否则为false。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身)
  6. Array.reduce()Array.reduceRight() 会迭代数组的所有项,然后构建一个最终返回的值。reduceRight()从右向左遍历。该函数接收4个参数: 初始值(或计算结束后的返回值)、当前元素、当前元素的索引、数组本身。
  7. Array.indexOf(item, start) 在数组中搜索元素值并返回其索引,从0开始。若未找到,返回-1。 参数item必须,start可选,从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。
  8. Array.lastIndexOf() 同上,从数组结尾开始搜索
  9. Array.find() 该方法返回符合函数的第一个数组元素的值。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身),ie12浏览器支持
  10. Array.findIndex() 该方法返回符合函数的第一个数组元素的索引。该函数接收三个参数(数组项的值、该项在数组中位置、数组本身)
  11. for...of 该方法遍历一切可遍历的元素(数组、对象、集合)等

实例

forEach()

var numbers = [1,2,3,4,5,4,3,2,1]
numbers.forEach((item, index, arr) => {
  console.log(item)  //无返回值,循环数组的值
})

map()

// 返回每次函数调用的结果组成的数组
var numbers = [1,2,3,4,5,4,3,2,1]
var mapResult = numbers.map((item, index, arr) => {
  return item > 2
})
console.log(mapResult)  // [2,4,6,8,10,8,6,4,2]

filter()

// 返回该函数会返回true的项组成的数组
var numbers = [1,2,3,4,5,4,3,2,1]
var filterResult = numbers.filter((item, index, arr) => {
  return item > 3
})
console.log(filterResult)  // [4,5,4]

some()

// 如果该函数任一项返回true,则返回true
var numbers = [1,2,3,4,5,4,3,2,1]
var someResult = numbers.some((item, index, arr) => {
  return item > 3
})
console.log(someResult)  // true

every()

// 如果该函数任一项返回false,则返回false
var numbers = [1,2,3,4,5,4,3,2,1]
var everyResult = numbers.every((item, index, arr) => {
  return item > 3
})
console.log(everyResult)  // false

reduce()

// 返回计算结果。注意:reduce() 对于空数组不执行回调函数
var numbers = [1,2,3,4,5,4,3,2,1]
var sum = numbers.reduce((total, currentVal, currentIndex, arr) => {
  return total + currentVal
})
console.log(sum)  // 25

indexOf()

// 返回数组中指定元素第一次出现的位置,如果没有匹配的元素返回-1,开始的索引为0
var numbers = [1,2,3,4,5,4,3,2,1]
console.log(numbers.indexOf(3))  // 2

lastIndexOf()

// 从结尾开始搜索,如果没有匹配的元素返回-1
var numbers = [1,2,3,4,5,4,3,2,1]
console.log(numbers.lastIndexOf(3))  // 6

find()

// 返回匹配的第一个元素的值,无匹配的值则为undefined
var numbers = [1,9,12,16,19]
var findResult= numbers.find((item, index, arr) => {
  return item > 10
})
console.log(findResult) // 12

findIndex()

// 返回匹配的第一个元素的索引值,无匹配的值则为undefined
var numbers = [1,9,12,16,19]
var findResult= numbers.findIndex((item, index, arr) => {
  return item > 10
})
console.log(findResult) // 2

for…of

// 返回匹配的第一个元素的索引值,无匹配的值则为undefined
var numbers = [1,9,12,16,19]
for (let item of numbers) {
  console.log(item)    //打印出每一项的值
}

for (let item of numbers.values()) {
  console.log(item)    //打印出每一项的值
}

for (let item of numbers.keys()) {
  console.log(item)    //打印出每一项的索引值
}

for (let [index, item] of numbers.entries()) {
    console.log(index, item)  //打印出每一项的索引值与值
}

评论区

励志做一条安静的咸鱼,从此走上人生巅峰。

0

1

0

举报