初识JavaScript第八节

❤️当你穿过了暴风雨,你就不再是原来那个人。❤️

JavaScript 数组迭代

Array.forEach()

  使用forEach() 可以为每个数组元素调用一次函数。

实例

var txt = "";
var numbers = [78, 351, 6, 52, 24, 95];
numbers.forEach(myFunction);
document.getElementById("jg").innerHTML = txt;

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

输出结果

78
351
6
52
24
95
// forEach()将会把所有元素输出

注释:此函数接受 3 个参数。

  • 项目值
  • 项目索引
  • 数组本身

tips:几乎所有的浏览器都支持 Array.forEach(),除了 IE8或更早的浏览器。

Array.map()

  使用map() 通过对每个数组元素执行函数来创建新数组,它不会对没有值的数组元素执行函数,而且不会更改原始数组。

实例

var numbers1 = [78, 351, 6, 52, 24, 95];
var numbers2 = numbers1.map(myFunction);

document.getElementById("jg").innerHTML = numbers2;

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

输出结果

156,702,12,104,48,190
// 输出结果为每个数值乘2

Array.filter()

  使用filter() 创建一个包含通过测试的数组元素的新数组。

实例

var numbers = [78, 351, 6, 52, 24, 95];
var over30 = numbers.filter(myFunction);

document.getElementById("jg").innerHTML = over30;

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

输出结果

78,351,52,95
// 输出结果为大于30的数创建的新数组

Array.reduce()

  使用reduce()在每个数组元素上运行函数,以生成单个值。它在数组中从左到右工作。而且不会减少原始数组。

实例

var numbers = [78, 351, 6, 52, 24, 95];
var sum = numbers.reduce(myFunction);

document.getElementById("jg").innerHTML = "他们的和是:" + sum;

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

输出结果

他们的和是:606
// 输出结果为数组中所有数值的总和

Array.reduceRight()

  使用reduceRight() 在每个数组元素上运行函数,以生成单个值,它将在数组中从右到左工作,还不会减少原始数组。

实例

var numbers = [78, 351, 6, 52, 24, 95];
var sum = numbers.reduceRight(myFunction);

document.getElementById("jg").innerHTML = "他们的和是:" + sum;

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

输出结果

他们的和是:606
// 输出结果为所有数值的和
// 注:此函数和上一个函数的实例都是将所有数值相加,并不是内容重复

Array.every()

  使用every()可以检查所有数组值是否通过测试。

实例

var numbers = [78, 351, 6, 52, 24, 95];
var allOver30 = numbers.every(myFunction);
​
document.getElementById("demo").innerHTML = "所有大于 30 的是:" + allOver30;function myFunction(value, index, array) {
  return value > 30;
}

输出结果

所有大于 30 的是:false
// 输出结果为是否所有的数值都大于30为否

Array.some()

  使用some()检查某些数组值是否通过了测试。

实例

var numbers = [78, 351, 6, 52, 24, 95];
var someOver22 = numbers.some(myFunction);

document.getElementById("jg").innerHTML = "某些值是否大于22:" + someOver22;

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

输出结果

某些值是否大于22true
// 输出结果为是,某些值大于22

Array.indexOf()

  使用indexOf() 在数组中搜索元素值并返回其位置。

注释:第一个元素的位置是 0,第二个元素的位置是 1,以此类推。

实例

var fruits = ["xfx", "ds", "jg", "lg"];
var a = fruits.indexOf("jg");
document.getElementById("jg").innerHTML = "jg 被找到的位置是:" + (a + 1);
</script>

输出结果

jg 被找到的位置是:3
// 输出结果为jg的位置

语法:

array.indexOf(item, start)

注释:

item必需。要检索的项目。
start可选。从哪里开始搜索。负值将从结尾开始的给定位置开始,并搜索到结尾。

tips:如果没有找到元素,Array.indexOf() 返回 -1。如果元素多次出现,则返回第一次出现的位置。

Array.lastIndexOf()

Array.lastIndexOf()Array.indexOf() 类似,但是它是从从数组结尾开始搜索的。

实例

var fruits = ["xfx", "ds", "jg", "lg"];
var a = fruits.lastIndexOf("jg");
document.getElementById("jg").innerHTML = "jg 被找到的位置是" + (a + 1);

输出结果

jg 被找到的位置是3
// 输出的结果为jg被检索到的位置

Array.find()

  使用find() 返回通过测试函数的第一个数组元素的值。

实例

var numbers = [78, 351, 6, 52, 24, 95];
var first = numbers.find(myFunction);

document.getElementById("jg").innerHTML = "大于 50 的第一个值是:" + first;

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

输出结果

大于 50 的第一个值是:78
// 输出结果为大于50的第一个数是78

Array.findIndex()

使用findIndex() 返回通过测试函数的第一个数组元素的索引。

实例

var numbers = [5, 23, 35, 56, 71];
var first = numbers.findIndex(myFunction);
​
document.getElementById("jg").innerHTML = "大于 55 的第一个值的索引是:" + first;function myFunction(value, index, array) {
  return value > 55;
}

输出结果

大于 55 的第一个值的索引是:3
// 输出结果为大于55的第一个值的索引,索引为该位置-1所以为3

第八节到这里就结束了

我们将会在下一节接触到数组 Const

While our heads are hot, we have to be desperate.
趁我们头脑发热,我们要不顾一切
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值