var arr = []; //is a multidimensional array.
var barr = []; //is a temp array that is dynamically updated
var key = "key1"
arr.push(key, barr);
arr
现在看起来像这样 - > [key, Array(1)]
新数据进入barr
如何将另一个项目推入嵌套数组中以获得相同的密钥?
预期输出应该是这样的:[key, Array(2)]
答案 0 :(得分:2)
选项#1:
您可以进入barr
数组:
var arr = []; //is a multidimensional array.
var barr = []; //is a temp array that is dynamically updated
var key = "key1"
arr.push(key, barr);
console.log(arr);
barr.push('key2', 'key3');
console.log(arr);

barr
是对数组的引用,当您将其推入arra
数组时,实际上会将引用放在那里,因此在更新barr
时,您的引用仍然存在(并且更新)。
选项#2:
您可以进入数组第二位的数组:
var arr = []; //is a multidimensional array.
var barr = []; //is a temp array that is dynamically updated
var key = "key1"
arr.push(key, barr);
console.log(arr);
arr[1].push('key2', 'key3');
console.log(arr);

答案 1 :(得分:0)
你做的方式"键"实际上只是数组中的另一个值(在索引0处)。如果要使用字符串作为键,则必须使用对象。您可以使用括号语法设置和获取属性。括号语法也适用于数组,但仅使用整数作为键。
var obj = {};
var barr = [];
var key = "key1";
obj[key] = barr;
// barr changed
obj[key] = barr;