ES5
let arr = [1, 2, 3, 2, 4]
for循环
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
forEach() 没有返回值,只是针对每个元素调用func
arr.forEach(function(elem, index, array) {
console.log(elem, index)
})
map() 返回新的数组,每个元素为调用func的结果
let result = arr.map(function(value) {
value += 1
console.log(value)
return value
})
console.log(arr, result)
filter() 返回符合func条件的元素数组
let result = arr.filter(function(value) {
return value == 2
})
console.log(arr, result)
some() 返回boolean,判断是否有元素符合func条件
let result = arr.some(function(value) {
console.log(value)
return value == 4
})
console.log(arr, result)
every() 返回boolean,判断每个元素都符合func条件
let result = arr.every(function(value) {
console.log(value)
return value == 2
})
console.log(arr, result)
reduce() 接收一个函数作为累加器
let sum = arr.reduce(function(prev, cur, index, array) {
return prev + cur
}, 0)
console.log(sum)
ES6
// find() 方法返回数组中满足提供的测试函数的第一个元素的值,否则返回 undefined。
let found = array.find(function(element) {
return element > 10;
});
console.log(found);
// findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。其实这个和 find() 是成对的,不同的是它返回的是索引而不是值。
let found = array.findIndex(function(element) {
return element > 10;
});
console.log(found);
//for 0f
for (let item of arr) {
console.log(item)
}
for (let item of arr.values()) {
console.log(item)
}
for (let item of arr.keys()) {
console.log(item)
}
for (let [index, item] of arr.entries()) {
console.log(index, item)
}