🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

Arrat - indexOfAll

2019-05-02

描述

返回数组中和 val 相等的所有元素的索引值。如果没有元素与之相等的话,返回 []

提示

  • 使用 Array.prototype.reduce() 迭代每一个元素,存储与之相等的元素的索引值
  • 返回数组的索引值

代码

const indexOfAll = (arr, val) => arr.reduce((acc, el, i) => (el === val ? [...acc, i] : acc), []);

示例

获取数组中与指定值相等的元素的索引值:

indexOfAll([1, 2, 3, 1, 2, 3], 1); // [0,3]
indexOfAll([1, 2, 3], 4); // []

返回总目录

每天 30 秒系列之 JavaScript 代码


欢迎注册黑客派社区,开启你的博客之旅。让学习和分享成为一种习惯!

4 评论
qiankunpingtai • 2019-05-03
回复 删除

(el === val ? [...acc, i] : acc) 中 [...acc, i]看的不太明白,能解释一下吗

Vanessa • 2019-05-03
回复 删除

参见 ES6-- 扩展运算符与剩余操作符...

const acc = [1, 2, 3]
const i = 4
console.log([...acc, i]) // [1, 2, 3, 4]
qiankunpingtai • 2019-05-03
回复 删除

这个操作符在操作数组的时候还真是挺好用的,以前还没有用过这个运算符。

Vanessa • 2019-05-04
回复 删除

是的,一开始还不太习惯用,用着用着就停不下来了