Sym - 一个用 Java 实现的现代化社区平台 • 源码 • 注册

Pipe - 小而美的开源博客平台 • 体验 • 皮肤
Solo - 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧! • 源码下载 
Wide - 一个基于 Web 的 Go 语言 IDE • 教程试用

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
回复 删除

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