说我有两个数组,一个对象,一个简单:
var objArray = [{id:1,name:'fred'},{id:2,name:'john'},{id:3,name:'jane'},{id:4,name:'pete'}]
var simpleArray = [1,3]
我想返回一个仅包含objArray中的项目的新数组,其中id属性值(1、2、3等)与simpleArray中的项目不匹配。
我应该回来了:
result = [{id:2,name:'john'},{id:4,name:'pete'}]
我已经尝试了$ .grep,.filter和$ .inArray的各种组合,但是却为此而苦苦挣扎。
您可以尝试以下一种方法:
var results = [];
objArray.filter(function(item){
if(simpleArray.indexOf(item.id)>-1)
results.push(item);
})
请尝试以下代码段:
function Customer(id, name){
this.id=id;
this.name=name;
};
this.Customer.prototype.toString = function(){
return "[id: "+this.id+" name: "+this.name+"]";
}
var objArray = [ new Customer(1,'fred'), new Customer(2,'john'), new Customer(3,'jane'), new Customer(4,'pete')];
var simpleArray = [1,3];
var results = [];
objArray.filter(function(item){
if(simpleArray.indexOf(item.id)>-1)
results.push(item);
});
document.write(results)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句