如何在数组中搜索对象属性?

时间:2014-09-22 17:59:10

标签: javascript jquery

我有一个带有一些对象的数组

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!

2 个答案:

答案 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;
&#13;
&#13;