JavaScript将值添加到多维数组

时间:2017-08-16 12:40:45

标签: javascript arrays

您好我正在尝试使用for循环向多维数组添加一些值。这是我到目前为止所创造的:

var test1 = [];
var test2 = [];
for (var i = 0; i < top10.length; i++)
{
    test1[i] = i;
    test1[i][0] = top10[i][0];
    test1[i][1] = top10[i][1];
}

这只是返回一个空数组。 top10是一个多维数组,包含:

top10 Array

它可以包含更多数据,这就是我需要for循环的原因。我正在尝试创建2个多维数组“test1”和“test2”,其中一个将包含“Hinckley Train Station”和“4754”,另一个将包含“Hinckley Train Station”和“2274”。

我可以有多个场地,不仅仅是“欣克利火车站”“4754”“2274”我还可以拥有“伦敦城市”“5000”“1000”。这就是为什么它是for循环。

2 个答案:

答案 0 :(得分:2)

您可以将新阵列推送到所需部分

&#13;
&#13;
var top10 = [
        ["Hinckley Train Station", "4754", "2274"],
        ["London City", "5000", "1000"]
    ],
    test1 = [],
    test2 = [],
    i;

for (i = 0; i < top10.length; i++) {
    test1.push([top10[i][0], top10[i][1]]);
    test2.push([top10[i][0], top10[i][2]]);
}

console.log(test1);
console.log(test2);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在这一行

test1[i] = i;

您正在指定一个整数作为外部数组的第一个元素。你没有2d数组,你有一个整数数组

以下几行:

test1[i][0] = top10[i][0];
test1[i][1] = top10[i][1];

您正在为一个整数分配属性,这意味着they are being boxed,但是盒装值会被丢弃。

很难说出你想要做什么,但以下内容可能更接近。每次循环都需要创建一个新的内部数组。

for (var i = 0; i < top10.length; i++)
{
    test1[i] = [];
    test1[i][0] = top10[i][0];
    test1[i][1] = top10[i][1];
    // Maybe do something similar with test2
}