JavaScript 数组迭代方法

数组迭代方法对每个数组项进行操作。

Array.forEach()

forEach() 方法为每个数组元素调用一次函数(回调函数)。
实例:

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt = txt + value + "<br>"; 
}

注释:该函数接受 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身

Array.map()

map() 方法通过对每个数组元素执行函数来创建新数组。该方法不会对没有值的数组元素执行函数。该方法不会更改原始数组。这个例子将每个数组值乘以2:
实例:

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}

请注意,该函数有 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身

Array.filter()

filter() 方法创建一个包含通过测试的数组元素的新数组。这个例子用值大于 18 的元素创建一个新数组:
实例:

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身

Array.reduce()

reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。该方法在数组中从左到右工作。另请参见 reduceRight()。reduce() 方法不会减少原始数组。这个例子确定数组中所有数字的总和:
实例:

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);  //  99

function myFunction(total, value, index, array) {
  return total + value;
}

请注意此函数接受 4 个参数:

  1. 总数(初始值/先前返回的值)
  2. 项目值
  3. 项目索引
  4. 数组本身

reduce() 方法能够接受一个初始值:
实例:

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100); // 199 

function myFunction(total, value) {
  return total + value;
}

Array.reduceRight()

reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。reduceRight() 方法在数组中从左到右工作。另请参见 reduce()。reduceRight() 方法不会减少原始数组。这个例子确定数组中所有数字的总和:
实例:

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

请注意此函数接受 4 个参数:

  1. 总数(初始值/先前返回的值)
  2. 项目值
  3. 项目索引
  4. 数组本身

Array.every()

every() 方法检查所有数组值是否通过测试。这个例子检查所有数组值是否大于 18:
实例:

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身

Array.some()

some() 方法检查某些数组值是否通过了测试。这个例子检查某些数组值是否大于 18:
实例:

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身

Array.indexOf()

indexOf() 方法在数组中搜索元素值并返回其位置。
注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推。
实例:
检索数组中的项目 “Apple”:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

语法:

array.indexOf(item, start)
item 必需。要检索的项目。
start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。
如果未找到项目,Array.indexOf() 返回 -1。
如果项目多次出现,则返回第一次出现的位置。

Array.lastIndexOf()

Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索。
实例:
检索数组中的项目 “Apple”:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

语法:
array.lastIndexOf(item, start)
item 必需。要检索的项目。
start 可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到开头。

Array.find()

find() 方法返回通过测试函数的第一个数组元素的值。这个例子查找(返回)大于 18 的第一个元素的值:
实例:

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身

Array.findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。这个例子查找大于 18 的第一个元素的索引:
实例:

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

  1. 项目值
  2. 项目索引
  3. 数组本身
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值