2017-06-06 121 views
-1
var array = [{"one":1, "two":2},{"one":3, "two":4}]; 

      var result = array.findIndex(function (value) { 
       if (value === 2) { 
        return false; 
       } 
       return true; 
      }); 

      console.log(result); 

我一直在控制台中获得'0'。 我应该如何改变(价值=== 2)? 我已尝试更改为(值=== {“two”:2}) 但仍返回'0'。findIndex()javascript数组对象

有没有其他的数组方法适合?

+2

因为你正在做的'回报TRUE'在任何情况下。另外'value === 2'是什么意思。价值将是一个对象 – Rajesh

+0

哪个属性你喜欢检查?阵列中没有“价值”。 –

+0

value永远不会是'2'它会是'{“one”:1,“two”:2}或'{“one”:3,“two”:4}' –

回答

1

您需要检查数组对象的其中一个属性。然后返回检查结果。

var array = [{ one: 1, two: 2 }, { one: 3, two: 4 }], 
 
    result = array.findIndex(function(object) { 
 
     return object.two === 2; 
 
    }); 
 

 
console.log(result);

+1

其中,具有讽刺意味的是,也将导致输出'0' - 惊讶OP认为'0'不正确:p –

+0

是的,但是'0'其实是正确的。 ;-) –

+0

哦,我不反对你的回答:p –

0

及其与value.two。其数组.change的第一个参数对象属性不是一个阵列

var array = [{"one":1, "two":2},{"one":3, "two":4}]; 
 
      var result = array.findIndex(function (value) { 
 
           return value.two == 2; 
 
      }); 
 
      console.log(result);