Javascript 之 Array - entries()、every()、filter()
entries() - ES5
该数组的方法本人好像还没用过
// entries()
var arr1 = [111, 222, 333, 444, 555]
var arr2 = arr1.entries(); // 该对象包含了数组arr1的键值对:
console.log(arr1)
for(var key of arr2) { // key 数组 第一个为索引 第二个为该索引对应数组arr1 的具体元素值
console.log(Array.isArray(key))
console.log(key)
}
every() - ES5
由底层可知, every 接收两个参数,
第一个为一个函数,接受三个参数(value,index, item数组本身),必传
第二个(可选)为 this 指向问题, 默认指向 window
返回值为一个 布尔类型的数据 true or false
// every()
// 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
// 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。 逻辑短路
// 如果所有元素都满足条件,则返回 true。
// 注意: every() 不会对空数组进行检测。
// 注意: every() 不会改变原始数组。
var arr3 = [111, 222, 333, 444, 555]
function func(value, index, item){
// 这里可以做一些其他的事情 比如将不满足条件的元素找出来 只能找到第一个哦
// 后面有没有不满足条件的并不能找出来 逻辑短路了
console.log(value, index, item)
return value>100
}
var res3 = arr3.every(func)
console.log(res3)
var arr4 = []
console.log(arr4.every(func)) // 数组为空返回true 不检测
filter()![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8abe218a596b6585d5ca56c5735e0732.png)
// filter
// filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
// 注意: filter() 不会对空数组进行检测。
// 注意: filter() 不会改变原始数组。
// 注意: 无返回值时则返回空数组
var arr5 = [1,2,3,4,5,6,7];
var arr6 = arr5.filter((currentValue,index,arr)=>{
// console.log(currentValue,index,arr)
// 可以在这里做一些其他的操作
return currentValue % 2 == 0
//return 2 // 对每个数组元素执行的条件筛选 如果为真 返回的结果集将会包含该元素 然后继续判断下一个元素
})
console.log(arr6) // [ 2, 4, 6 ]