私は(フィルタ)を使用している別のJSON配列条件を使用してJSON配列をフィルタリングしようとしています。ここで別のJSON配列ノードを使用してJSON配列を検索するjs
は私のコードは次のとおりです。たとえば
function filterArray(object, criteria){
return object.filter(function(obj){
for(var i=0;i<criteria.length;i++){
let criteriaEle = criteria[i];
return Object.keys(criteriaEle).forEach(function(key){
if(obj[key] == criteriaEle[key]){
return obj;
}
})
}
})
}
:
object = [{type:1,company:1,color:0,name:a},{type:2,company:1,color:0,name:b},{type:1,company:3,color:0,name:c},{type:4,company:1,color:0,name:d},{type:1,company:1,color:1,name:e}]
criteria = [{type:1,company:1,color:0},{type:1,company:1,color:1}]
私は関数にこれら二つの配列を与えるのであれば、それは私はありません
obj = [{{type:1,company:1,color:0,name:a},{type:1,company:1,color:1,name:e}}]
を返す必要があります私はどこで間違っているのか確かめてください。助けてください。
更新: また、obj.typeまたはobj.companyまたはobject.colorをパラメータとして使用して検索したいとは思いません。自分のコードをメンテナンス可能にしたい場合や、将来、より多くの基準が追加されます。ここで
**アンダースコア.js **の使用はどうですか?ここで 'where'関数を使うことができます。 :) –
@HannahMayステートメントで論理ORを使用することはできません。 –