[Javascript] 配列内に複数存在する値のindexを配列で取得する方法
配列データの中で、特定の値のindex値を取得したい場合は、findIndexで簡単に取得できる。
["a","b","c","d","e"].findIndex(e => e === "c")
> 2
しかし、array.findIndex()は、最初のindex値しか取得できない。
["a","b","a","b","a"].findIndex(e => e === "b")
> 1
デフォルト機能が無かったので、自分で関数を作って対応
関数で実装
function filterIndex(datas, value){
const res_arr = []
for(let i=0; i<datas.length; i++){
if(datas[i] === value){
res_arr.push(i)
}
}
return res_arr
}
実行サンプル
filterIndex(["a","b","a","b"],"b")
> [1, 3]
ネイティブArray関数をハック
Array.prototype.filterIndex = function(value){
const datas = this
const res_arr = []
for(let i=0; i<datas.length; i++){
if(datas[i] === value){
res_arr.push(i)
}
}
return res_arr
}
実行サンプル
["a","b","a","b"].filterIndex("b")
> [1, 3]