将数据推送到特定索引处的2d数组内的数组中

时间:2017-08-03 22:45:00

标签: javascript arrays

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)]

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;