2017-06-29 126 views
1

我有一個對象的數組result2,並且每個對象都有屬性。所以,如果我在控制檯呼叫console.dir(result3);我看到Example如何從具有特定屬性的對象數組中選擇對象

我會騙我的對象進行排序,例如我需要

sm[['_akzsilb'] === 'LV' 
sm ['_graphem'] === 'diphtong'] 

我試圖

const result3 = []; 
for (let i = 0; i < result2.length; i++) { 
    if (result2[i].sm[['_akzsilb'] === 'LV' && ['_graphem'] === 'diphtong']) { 
    result3.push(result2[i]); 
    } 
} 

但doesnt't對象工作。我想這是正確的方向,因爲如果我嘗試的東西,如

const result3 = []; 
for (let i = 0; i < result2.length; i++) { 
    if (result2[i].sm) { 
    result3.push(result2[i]); 
    } 
} 

它的工作原理。所以我怎麼可以'更深入'和訪問兩個(我需要兩個,所以他們都必須存在的對象)_akzsilb_graphem

+2

請加你的文字語法使用數組的一小部分。 –

回答

1

您可以使用數組過濾器。

filter()方法創建一個新數組,其中包含所有通過所提供函數實現的測試的元素。

Array.prototype.filter()

let arr = [{ 
 
    name: "Joe", 
 
    rank: "Private", 
 
    serialnum: 1 
 
    }, 
 
    { 
 
    name: "Bob", 
 
    rank: "General", 
 
    serialnum: 4 
 
    }, 
 
    { 
 
    name: "Kev", 
 
    rank: "Private", 
 
    serialnum: 6 
 
    }, 
 
    { 
 
    name: "Kel", 
 
    rank: "Private", 
 
    serialnum: 3 
 
    } 
 
]; 
 

 
let results = arr.filter(person => person.rank === "Private" && person.serialnum != 6); 
 

 
console.log(results);

相關問題