2013-06-12 114 views
0

javascript中有一組對象。我需要在該數組中查找該對象的屬性值。所有具有匹配屬性的對象我需要將它們放入另一個數組中。我是jQuery初學者,任何幫助將非常感激。謝謝。搜索數組中的值,並將結果放入另一個數組中jquery

var numPerRow = 6; 
     for (var i=0; i<subjects.length; i+=numPerRow) { 
      // TODO: Implement a row view 
var printTitle = subjects[i].getTitle(); 
if (printTitle.indexOf(searchValue) > -1) 
{ 
      var row = $('<div class="browse-printables-row"></div>'); 
      for (var j=0; j<numPerRow; j++) { 
       var idx = i+j; 
       if (idx >= subjects.length) { 
        break; 
       } 
       // TODO: Implement a printables tile view 
       row.append($(
        '<div class="printable-tile">' + 
         '<img src=' + printTitle[idx].getIconURL() + ' class="subject-tile-icon"></img>' + 
         '<div class="subject-tile-title">' + printTitle[idx].getTitle() + '</div>' + 
        '</div>' 
       )); 
      } 
} 
      grid.append(row); 
+0

請發佈一些代碼,到目前爲止你有什麼嘗試? –

+2

至少請發佈您的輸入(數組)和您的預期輸出。 –

+1

@DavidThomas,不!你們做我的工作,並猜測我需要什麼! – gdoron

回答

1

閱讀關於陣列的filter方法

實施例將濾光器陣列和僅返回對象,其中屬性b等於2:

var filtered = [{a: 1, b: 2}, {a: 5, b:2}, {a:2, b:1}].filter(function(el, index, array) { 
    if(typeof el.b === 'undefined') return false; 
    return (el.b === 2); 
}); 
+0

爲什麼不簡化:'typeof el.b ==='undefined'?假:el.b;'? –

+0

我已經寫了一個例子來獲取一些特定的對象(其中屬性b等於兩個),您需要將您的版本更正爲'el.b === 2'。我完全同意它可以寫得更短,但我不同意短手'if'陳述更加簡單易讀。順便說一句,如果你想檢查對象數組中是否存在屬性,你的示例將無法正常工作,因爲'el.b'可以等於零,並且過濾器的回調函數將返回等於false的0。 –

1

骨架答案爲骨架問題

//declare array 
if(jQuery.inArray(yourObj, arrayOfObjs) === -1) 
{ 
not found 
} 
else 
{ 
found //push in to array 
} 
+1

我有一點點......但它對於一個不好的問題是一個很好的答案 – Joum

相關問題