第七章 数组(中)

101 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

前言

凡此皆编以号,其怪兽为零。 ---X星统制官,《哥斯拉之怪兽大战争》 JavaScript的数组几乎就是对象,它们仅有四处不同。

规约

reduce函数用于将数组的值归约为单个值。它的参数是有两个参数的函数。reduce会循环调用这个传入的参数,知道遍历完毕这个数组未知。
reduce函数有两种调用形式。一种是让reduce函数遍历整个数组的每一个元素。这种调用形式需要传入一个规约的初始值。

image.png

let total = [2,5,10].reduce((a,b) => { return a + b },2) // total = 19

这里将 2作为初始值,每次调用函数的时候,实际参数如下:

(2,2)  // 4
(4,5)  // 9
(9,10) // 19

在无初始值的时候情况如下:

let total = [2,5,10].reduce((a,b) => { return a + b }) // total = 17

实际参数如下:

(2,5)  // 7
(7,10) // 17

遍历

  • forEach
const myAwesomeArray = [ { id: 1, name: "john" }, { id: 2, name: "Ali" }, { id: 3, name: "Mass" },] 
myAwesomeArray.forEach(element => console.log(element.name)) 
// john 
// Ali 
// Mass
  • every
const myAwesomeArray = ["a", "b", "c", "d", "e"]
myAwesomeArray.every(test => test === "d") 
// false
const myAwesomeArray2 = ["a", "a", "a", "a", "a"] 
myAwesomeArray2.every(test => test === "a") 
// true
  • some
const myAwesomeArray = ["a", "b", "c", "d", "e"]
myAwesomeArray.some(test => test === "d") 
// true
  • find
const myAwesomeArray = [ { id: 1, name: "john" }, { id: 2, name: "Ali" }, { id: 3, name: "Mass" },] 
myAwesomeArray.find(element => element.id === 3) 
//  {id: 3, name: "Mass"} 
myAwesomeArray.find(element => element.id === 7) 
// undefined
  • findIndex
const myAwesomeArray = [ { id: 1, name: "john" }, { id: 2, name: "Ali" }, { id: 3, name: "Mass" },]
myAwesomeArray.findIndex(element => element.id === 3) 
//  2
myAwesomeArray.findIndex(element => element.id === 7) 
// -1
  • filter
const myAwesomeArray = [ { id: 1, name: "john" }, { id: 2, name: "Ali" }, { id: 3, name: "Mass" }, { id: 4, name: "Mass" },] 
myAwesomeArray.filter(element => element.name === "Mass") 
//{{id: 3, name: "Mass"},{id: 4, name: "Mass"}]
  • map
const myAwesomeArray = [5, 4, 3, 2, 1]
myAwesomeArray.map(x => x * x) 
// [25,16,9,4,1]

其他的方法,之后在进行补充哈!

数组之"森"

数组就想一个森林,里面很多的函“树”。有些方法纯净如水,并不会私下改变任何入参;而有些则不;所以再用这些方法的时候,我们需要知道那些是纯的,那些不是。

纯净之树

concat
every
filtter
find
findIndex
forEach
indexOf
join
lastIndexof
map
reduce
reduceRight
slice
some

非纯之树

fill
pop
push
shift
splice
unshift

污染之树

reverse
sort