reduceRight() 方法和的reduce()用法几乎一致 , 只是该方法是对数组进行倒序遍历的 , 而reduce()方法是正序遍历的 。
let arr = [1, 2, 3, 4]let sum = arr.reduceRight((prev, cur, index, arr) => {console.log(prev, cur, index);return prev + cur;}, 5)console.log(arr, sum);
输出结果:
5 4 39 3 212 2 114 1 0[1, 2, 3, 4] 15
注意:
- 两个方法都不会改变原数组;
- 两个方法如果添加初始值 , 就会改变原数组 , 会将这个初始值放在数组的最后一位;
- 两个方法对于空数组是不会执行回调函数的 。
findIndex() 方法返回传入一个测试函数符合条件的数组第一个元素位置(索引) 。当数组中的元素在函数条件时返回 true 时 , findIndex() 返回符合条件的元素的索引位置 , 之后的值不会再调用执行函数 。如果没有符合条件的元素返回 -1 。
两个方法的语法如下:
array.find(function(currentValue, index, arr),thisValue)array.findIndex(function(currentValue, index, arr), thisValue)
两个方法的第一个参数为回调函数 , 是必传的 , 它有三个参数:
- currentValue:必需 。当前元素;
- index:可选 。当前元素的索引;
- arr:可选 。当前元素所属的数组对象 。
let arr = [1, 2, 3, 4, 5]arr.find(item item > 2) // 输出结果: 3let arr = [1, 2, 3, 4, 5]arr.findIndex(item item > 2) // 输出结果: 2
find()和findIndex()两个方法几乎一样 , 只是返回结果不同:
- find():返回的是第一个符合条件的值;
- findIndex:返回的是第一个返回条件的值的索引值 。
- 两个方法对于空数组 , 函数是不会执行的;
- 两个方法否不会改变原数组 。
- keys() 返回数组的索引值;
- values() 返回数组的元素;
- entries() 返回数组的键值对 。
array.keys()array.values()array.entries()
这三个方法都没有参数:
let arr = ["Banana", "Orange", "Apple", "Mango"];const iterator1 = arr.keys();const iterator2 = arr.values() const iterator3 = arr.entries() for (let item of iterator1) {console.log(item);}// 输出结果: 0 1 2 3for (let item of iterator2) {console.log(item);}// 输出结果: Banana Orange Apple Mangofor (let item of iterator3) {console.log(item);}// 输出结果:[0, 'Banana'] [1, 'Orange'] [2, 'Apple'] [3, 'Mango']
总结:
是否改变原数组
特点
forEach()
否
没有返回值
map()
否
有返回值 , 可链式调用
for of
否
for...of遍历具有Iterator迭代器的对象的属性 , 返回的是数组的元素、对象的属性值 , 不能遍历普通的obj对象 , 将异步循环变成同步循环
filter()
否
过滤数组 , 返回包含符合条件的元素的数组 , 可链式调用
every()、some()
否
some()只要有一个是true , 便返回true;而every()只要有一个是false , 便返回false.
find()、findIndex()
否
find()返回的是第一个符合条件的值;findIndex()返回的是第一个返回条件的值的索引值
推荐阅读
- 小三|死循环!“山东第一胖”王浩楠翻车后又复胖,体重反弹疑已被抛弃
- 招商信用卡循环利息是什么意思?信用卡账单里“循环利息”是什么意思?
- 三分钟轻松搞懂 HashMap 死循环问题!
- 为什么 JavaScript 在国外逐渐用于前端+后端开发,而国内还是只用它做前端?
- object JavaScript选择 map而非对象存储键值对的 5 个理由附示例
- JavaScript 类型转换和强制转换
- 循环取货(Milk Run) 循环取货
- 不可回收垃圾有哪些、垃圾桶标志以及循环标志和不可回收标志是什么样子
- 小行星撞击曾触发地壳物质循环 地壳物质循环
- 游泳池水处理设备怎么选择? 游泳池循环水处理设备