虽然我的目标是制作一个像这样的阵列,但这听起来可能会让人感到困惑。
var array2D= [
{ locations: [0, 0, 0], status: ["", "", ""] },
{ locations: [0, 0, 0], status: ["", "", ""] },
{ locations: [0, 0, 0], status: ["", "", ""] }
],
所以请考虑我是否有如下所示的数组。
var locations = [0,0,0];
var status = ["","",""];
我可以以某种方式推动他们制作2D阵列吗? 我尝试过类似的东西,但它没有工作
var the2Darray =[];
the2Darray.push(location,status);
答案 0 :(得分:3)
var locations = [0,0,0];
var status = ["","",""];
var the2Darray =[];
the2Darray.push({locations: locations,status: status});
答案 1 :(得分:2)
你必须创建一个带有键作为位置和状态的对象,为它们分配相应的数组,然后简单地推送到你的新数组。
org.apache.sling.api.resource.Resource
答案 2 :(得分:1)
假设您需要独立数组,而不是需要使用Array#slice
来获取primitive types的副本,如字符串,数字,布尔值,空值,未定义,符号(ECMAScript 2015中的新内容)。< / p>
var locations = [0, 0, 0],
status = ["", "", ""];
array = [],
l = 3;
while (l--) {
array.push({ locations: locations.slice(), status: status.slice() });
}
array[2].locations[0] = 42;
console.log(array)
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
如果不使用拼接,请看看42
。
正如您将看到的,locations
和status
的所有数组都与原始数组共享相同的引用。
var locations = [0, 0, 0],
status = ["", "", ""];
array = [],
l = 3;
while (l--) {
array.push({ locations: locations, status: status });
}
array[2].locations[0] = 42;
console.log(array)
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;