JavaScript 编程:数组遍历

2019-12-24  本文已影响0人  独木舟的木

数组遍历

传统语法

const colors = [ 'red', 'green', 'blue' ];

for (let index = 0; index < colors.length; index++) {
  console.log(colors[index]);
}

forEach 语法

const colors = [ 'red', 'green', 'blue' ];

colors.forEach(color => {
  console.log(color);
});

for-of语法

const colors = [ 'red', 'green', 'blue' ];

for (const color of colors) {
  console.log(color);
}

迭代方法

every() 方法

场景:判断数组中每个本书的 year 是否都大于 2018(即:一假即假)。

const books = [
  { id: 1, name: 'book1', year: 2019 },
  { id: 2, name: 'book2', year: 2018 },
  { id: 3, name: 'book3', year: 2017 },
];

const every = books.every(book => {
  return book.year > 2018;
});

console.log(every);
// false

some() 方法

场景:判断数组中是否存在 year 小于 2018 的元素(即:一真即真)。

const books = [
  { id: 1, name: 'book1', year: 2019 },
  { id: 2, name: 'book2', year: 2018 },
  { id: 3, name: 'book3', year: 2017 },
];

const some = books.some(book => {
  return book.year < 2018;
});

console.log(some);
// true

filter() 方法

场景:过滤掉数组中元素 weight 小于 10 的元素(即:大于等于 10 才有效)。

const numbers = [ 1, 2, 4, 8, 16 ];

const filtered = numbers.filter(value => {
  return value >= 10;
});

console.log(filtered);
// [ 16 ]

map() 方法

场景:数组每个元素翻倍,存储到另一个数组中。

const numbers = [ 1, 2, 4, 8, 16 ];

const double = numbers.map(value => {
  return value * 2;
});

console.log(double);
// [ 2, 4, 8, 16, 32 ]

find() 方法

场景:找到并返回数组中值为 8 的元素。

const numbers = [ 1, 2, 4, 8, 16 ];

const found = numbers.find(number => {
  return number === 8;
});

console.log(found);
// 8

归并方法

reduce() 方法

const numbers = [ 2, 4, 8, 16 ];

const sum = numbers.reduce((previoutNumber, currentNumber) => {
  return previoutNumber + currentNumber;
});

console.log(sum);
// 30
上一篇 下一篇

猜你喜欢

热点阅读