数组的循环遍历
前言
搜索整理出来的一些数组方法,原文数组循环篇1 、 数组循环篇2、 数组循环篇3
1.for循环
最原始的for(int i=0;i<length;i++){}
代码如下(示例):
let arr = ["a", "b", "c", "d"];
for( const i = 0; i < arr.length-1; i++ ) {
console.log(i); // 输出abcd
2.forEach
foreach循环不可return,break
代码如下(示例):
let arr = ["a", "b", "c", "d"];
arr.forEach(item => {
console.log(item);
});
3.for in
for in可遍历数组、对象
代码如下(示例):
let obj = {a: '1', b: '2', c: '3', d: '4'}
for (let i in obj) {
console.log(i) //遍历的实际上是对象的属性名称 a,b,c,d
console.log(obj[i]) //这个才是属性对应的值1,2,3,4
}
4.for of
一个数据结构只有部署了 Symbol.iterator 属性, 才具有 iterator接口可以使用 for of循环。
for of不可遍历对象,可遍历数组
如果要遍历对象,有两个方法:
1、使用 Object.keys() 获取对象的 key值集合后,再使用 for of
2、使用内置的Object.values()方法获取对象的value值集合再使用for of
代码如下(示例):
// 1、使用 Object.keys() 获取对象的 key值集合后,再使用 for of
let obj = {a: '1', b: '2', c: '3', d: '4'}
for (let i of Object.keys(obj)) {
console.log(i) // a,b,c,d
}
// 2、使用内置的Object.values()方法获取对象的value值集合再使用for of
let obj = {a: '1', b: '2', c: '3', d: '4'}
for (let i of Object.values(obj)) {
console.log(i) // 1,2,3,4
}
5.数组内置方法Array.prototype.filter
代码如下(示例):
var a = [1,2,3];
var b = a.filter(function(value,key,arr){
console.log(value) // 结果依次为1,2,3
console.log(key) // 结尾依次为0,1,2
console.log(arr) // 三次结果都为[1,2,3]
})
6.数组内置方法Array.prototype.indexOf
代码如下(示例):
var a = [1,2,3];
var b = a.indexOf(2);
console.log(a); // 结果为[ 1, 2, 3 ]
console.log(b); // 结果为1
7…map()
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
是否改变原数组:否
是否对空数组进行检测:否
代码如下(示例):
const arr= [4, 9, 16, 25];
const arr1 = arr.map(item => item+2)
console.log(arr) // [4, 9, 16, 25]
console.log(arr1) // [6, 11, 18, 27]
7. .find()
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
find() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
注意: find() 对于空数组,函数是不会执行的。
注意: find() 并没有改变数组的原始值。
代码如下(示例):
const arr= [4, 9, 16, 25];
const b = arr.find(item => item>10)
const c = arr.find(item => item<1)
console.log(arr) // [4, 9, 16, 25]
console.log(b) // 16
console.log(c) // undefined
总结
数组遍历方法有很多,根据自身需要使用,有.filter()、.map()、.forEach()、.find()、.findIndex()、.some()、.every()、.fill()等很多