JavaScript

強化版 IndexOf (JavaScript Tips)

名前をつけて再利用可能にする

const allIndexOf = (val, arr) => arr.reduce((acc, x, i) => x === val ? acc.concat(i) : acc, []);

allIndexOf(2, [1, 2, 4, 2]) // -> [ 1, 3 ]
allIndexOf(3, [1, 2, 4, 2]) // -> []

ポイントは reducer が第三引数にインデックス番号を持つということ

出典
https://stackoverflow.com/questions/20798477/how-to-find-index-of-all-occurrences-of-element-in-array