我有一个带有一些对象的数组
var arr = [{index: 1, type: 2, quantity: 1}, {index: 3, type: 1, quantity: 2}, {index: 1, type: 3, quantity: 3}];
现在我想搜索我的数组,如果在其中存在一个具有给定索引和类型的对象。如果存在,我向数量属性添加+ 1。如果没有,我添加一个数量为1的新对象。我试图使用$ .grep和$ .inArray,但无济于事。搜索对象数组中属性的最佳方法是什么?
TNX!
答案 0 :(得分:2)
for if with condition:JsFiddle
var arr = [{index: 1, type: 2}, {index: 3, type: 1}];
var found = '';
for(item in arr){
if(arr[item].index === 1 && arr[item].type === 2){
found = arr[item];
}
}
答案 1 :(得分:1)
在grep中的函数中,您需要返回测试结果,并且从grep返回的结果也是一个新数组。它不会修改现有数组。
我做了一个片段:
var arr = [{index: 1, type: 2}, {index: 3, type: 1}, {index: 1, type: 3}];
var result = $.grep(arr, function(e){
return e.index === 1 && e.type === 3
});
alert(result[0].index + " " + result[0].type);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;