在嵌套的javascript数组或对象上动态添加或更新键值

时间:2016-04-14 01:33:23

标签: javascript

也许我没有使用正确的搜索字词,因为我无法找到我想要的内容,但我想在javascript中执行类似下面的操作。我相信问题可能是我试图在一次调用中动态创建并为一个数组赋值,这可能是不允许的,或者我的语法可能是错误的(我来自PHP背景)。

var array = [];
array[key][] = value;
return array;

我正在遍历现有数组,每次遇到一个键时,我都希望将其关联值添加到该键下的新数组中。如果array[key]尚不存在,我希望它被创建。如果它已经存在,我想要将新值添加到现有array[key]。我希望最终结果看起来像这样:

array = [
  [key1] = [value1, value2, value3, value4],
  [key2] = [value1, value2, value3, value4],
  ...
  ]

它不一定是一个数组。它可以是一个对象。

2 个答案:

答案 0 :(得分:1)

演示代码如下:

var array = [];

function pushToArray(key, value){
  var subArray = array[key];

  if( typeof subArray == "undefined"){
      subArray = [];
      array[key] = subArray;
  }

  subArray.push(value);
  return subArray;
}

pushToArray("key1", "value11");
pushToArray("key1", "value12");
pushToArray("key2", "value21");
pushToArray("key2", "value22");

console.log(array);

答案 1 :(得分:0)

您可以使用Array来执行此操作,但看起来Map是您正在寻找的?键可以存储为Map的键,而对于map的对象,可以存储Array Objects。

请查看此链接Javascripy Map Object