2017-06-06 78 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);