在关联数组中搜索对象中的重复属性

时间:2015-08-20 10:11:17

标签: javascript arrays

我需要找出一个用户是否在关联数组中出现多次(然后将相同任务的值相加)。我如何在javaScript中执行此操作?

    {
  "Items": [
    {
      "Date": {
        "N": "1439883817221"
      },
      "UserName": {
        "S": "user1"
      },
      "task1": {
        "N": "9"
      }
    },
    {
      "Date": {
        "N": "1439892361108"
      },
      "task2": {
        "N": "3"
      },
      "UserName": {
        "S": "user2"
      }
    },
    {
      "Date": {
        "N": "1439904242126"
      },
      "UserName": {
        "S": "user1"
      },
      "task2": {
        "N": "2"
      }
    }
}}

1 个答案:

答案 0 :(得分:0)

试试这个:

var uniqueNames = [];
var nonUniqueNames = [];
$.each( list.Items, function(i, item ) {

    if(uniqueNames.indexOf(item.UserName.S) != -1 ){
        nonUniqueNames.push(item.UserName.S);   
    } else { 
        uniqueNames.push(item.UserName.S);  
    }

});

      alert(nonUniqueNames);

https://jsfiddle.net/c2co1hck/

至于相同的任务,你可以找到相同的方法来做到这一点。 请定义相同的任务,因为您有不同的名称和值。

发布您的一些代码也将不胜感激。

顺便说一下,你的JSON中有错误,它应该以 ]}没有}}