Javascript数组没有得到修改

时间:2015-09-20 20:08:17

标签: javascript jquery

我在“data”变量中有一些JSON数据。 格式:

{
    "0" : {"names":"Pooja, Trivedi"},
    "1" : {"names":"Pooja, Rooster"}
}

我需要实现一个地图,以便计算不同的名称:

Pooja = 2
Trivedi = 1
Rooster = 1

以下是实施:

map = new Array();
data = jQuery.parseJSON(data);  //convert JSON to object
for (var i = 0; i < data.length; i++) {
  var names = data[i].names.split(','); //split the CSVs
  for (var j = 0; j < names.length; j++) {
    if (map[names[j].trim()] === undefined) {
      map[names[j].trim()] = 1;
    } else {
      map[names[j].trim()]++;
    }
  }
console.log(map); //shows progressively filled arrays
}
console.log(map); //shows [], an empty array

在循环内部,地图会更新。 但是在i循环结束后,我们只有一个空数组。 这是如何解决的?

1 个答案:

答案 0 :(得分:-1)

我更喜欢这个版本:

var data = {
    "0" : {"names":"Pooja, Trivedi"},
    "1" : {"names":"Pooja, Rooster"}
};

var nameCounts = {};

for (var item in data) {
    data[item].names.split(", ").forEach(function (name) {
        if (name in nameCounts) {
            nameCounts[name]++;
        } else {
            nameCounts[name] = 1;
        }
    });
}

console.log(nameCounts);