2017-08-14 81 views
0

我有一個包含對象的數組。if語句結果的新數組

我想使用if語句搜索具有特定屬性的對象並創建一個單獨的數組,其中只包含這些對象。

var firstArray = [...] 
 

 
for (var a = 0; a < firstArray.length; a++) { 
 
    if (firstArray[a].name == 'index.png') { 
 
    // create secondArray here 
 
    } 
 
}

感謝您的幫助!

+0

['Array#filter'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)。 – Erazihel

+0

請提供樣本數據以及您卡在哪裏。沒有必要這樣做。已經有內置的方法,如過濾器 –

回答

-1

您可以用這種方式

var obj = {'el1': 1, 'el2': 2}; 
 
var firstArray = [{'el1': 1, 'el2': 2}, {'el3': 1, 'el4': 2}] 
 
var searchTerm = 'el1'; 
 
for(var a=0; a<firstArray.length; a++){ 
 
    for(var key in firstArray[a]){ 
 
    if(key == searchTerm){ 
 
     // do whatever you want to do. 
 
    console.log('key = ', key, 'value = ', obj[key]); 
 
    } 
 
    } 
 
}

+0

該OP開始於一個數組,而不是一個對象... – War10ck

+0

而這根本不是過濾器。另外,應該聲明'key'。 – PeterMader

+0

我想你正在談論這個解決方案。我之前只寫了內部部分。 – Atiq

0

只需使用一個過濾器

var secondArray = firstArray.filter(x => x.name == 'index.png') 
0

var firstArray = [{ 
 
    'name': 'A' 
 
}, { 
 
    'name': 'B' 
 
}, { 
 
    'name': 'C' 
 
}] 
 
var newArray = []; 
 

 
for (name in firstArray) { 
 
    if (firstArray[name].name == 'A') { 
 
    newArray = firstArray[name]; 
 
    console.log(newArray) 
 
    } 
 
}

請檢查此片段。