如何在纯JavaScript中通过一个值获得数组的多个索引(值精确匹配)

如何在纯JavaScript中通过一个值获得数组的多个索引(值精确匹配),javascript,arrays,indexof,Javascript,Arrays,Indexof,我试图使indexOf返回数组项的多个索引,这些索引的值等于“1”(完全匹配) 以下是我正在做的: var arr = [1, 11, 1, 111, 1111, 11, 1, 1111, 11]; for (i = 0; i < arr.length; i++){ console.log(arr.findIndex(1, i)); } var-arr=[1,11,1111111,11,1111111,11]; 对于(i=0;i{ n==1和r.push(i); 返回r; }, []

我试图使indexOf返回数组项的多个索引,这些索引的值等于“1”(完全匹配)

以下是我正在做的:

var arr = [1, 11, 1, 111, 1111, 11, 1, 1111, 11];
for (i = 0; i < arr.length; i++){
  console.log(arr.findIndex(1, i));
}
var-arr=[1,11,1111111,11,1111111,11];
对于(i=0;i
我预期的结果是: 0 2. 六,

但实际上,在提到索引之后,我得到了“-1”值。我假设它与数组的 值(每个值包括“1”,但不等于“1”)。当我对数组执行相同操作时 不同的值,它可以根据需要工作

它真的与价值观有关吗?如果是,如何解决这个问题? 如果有更合适的方法通过一个值(精确匹配)来查找多个数组的索引,我们将不胜感激。

您可以将数组转换为索引数组,该值为
1

const arr=[1,11,1111111,11,1111,11];
常数索引=arr.reduce((r,n,i)=>{
n==1和r.push(i);
返回r;
}, []);
console.log(索引)
您可以将索引数组转换为数组,其值为
1

const arr=[1,11,1111111,11,1111,11];
常数索引=arr.reduce((r,n,i)=>{
n==1和r.push(i);
返回r;
}, []);

console.log(索引)使用纯JavaScript有多种方法。我添加了一些

使用

var-arr=[1,11,1111111,11,1111111,11];
var键=[];
var FILTED=arr.filter((e,i)=>{
如果(e==1){
按键(i);
}
});

控制台日志(键)使用纯JavaScript有多种方法。我添加了一些

使用

var-arr=[1,11,1111111,11,1111111,11];
var键=[];
var FILTED=arr.filter((e,i)=>{
如果(e==1){
按键(i);
}
});
控制台日志(键)的可能重复项的可能重复项