遍歷一個對象數組,返回一個包含相匹配的屬性-值對的所有對象的數組

function where(collection, source) {
  var arr = [];
  var sProp=Object.keys(source);//獲取第二個參數key
  arr=collection.filter(function(v){
    
    for(var i=0;i<sProp.length;i++){//由於屬性可能不止一個,所以需要遍歷
      
      if(v[sProp[i]]!==source[sProp[i]]){//篩選出不符合條件的
        
        return false;
      }
    }
    return true;
  });
  return arr; 
}

filter 語法:
var new_array = arr.filter(callback[, thisArg])
filter 爲數組中的每個元素調用一次 callback 函數,並利用所有使得 
callback 返回 true 或 等價於 true 的值 的元素創建一個新數組。
callback 只會在已經賦值的索引上被調用,對於那些已經被刪除或者從未被賦值的索引不會被調用。
那些沒有通過 callback 測試的元素會被跳過,不會被包含在新數組中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章