在javascript中添加2维数组的列

时间:2015-10-23 06:29:22

标签: javascript arrays multidimensional-array

我有一个JavaScript数组:

var final = {[a, 10], [b, 2]};

我希望最终数组看起来像:

<select ng-change="onChange(item)" ng-model="item.Probability" ng-options="item as item.text for item in Probability">
</select>

当第一个元素匹配时,通过将二维数组的第二个元素相加来形成最终数组 请告知如何在JavaScript中实现这一目标

1 个答案:

答案 0 :(得分:1)

我认为你的意思是数组的第一项是字符串,最外面的数组是用方括号包装的,这意味着你的输入应该是这样的。

var arr = [["a", 1], ["b", 2], ["a", 4], ["a", 5]];

var mergeItem = function(list) {
  var map = {};
  for(var i = 0 ; i < list.length; i ++){
    var currentItem = list[i];
    if(!map[currentItem[0]]){
      map[currentItem[0]] = 0;
    }
    map[currentItem[0]] += currentItem[1];
  }

  var result = [];
  var keys = Object.keys(map);
  for(var i = 0; i < keys.length; i ++ ){
    result.push([keys[i], map[keys[i]]]);
  }
  return result;
}

mergeItem(arr);