我一直在网上阅读,有些地方说这是不可能的,有人说它是,然后给出一个例子,其他人反驳这个例子,等等.
如何在JavaScript中声明二维数组?(假设有可能)
我如何访问其成员?(myArray[0][1]或myArray[0,1]?)
我无法绕过这个怪癖.
[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3
Run Code Online (Sandbox Code Playgroud)
我知道[1,2,3] + [1,2] = "1,2,31,2",但我找不到正在执行的类型或操作.
如果我使用:
1.09 * 1; // returns "1.09"
Run Code Online (Sandbox Code Playgroud)
但如果我使用:
1,09 * 1; // returns "9"
Run Code Online (Sandbox Code Playgroud)
我知道1,09不是一个数字.
逗号在最后一段代码中做了什么?
if (0,9) alert("ok"); // alert
if (9,0) alert("ok"); // don't alert
Run Code Online (Sandbox Code Playgroud)
alert(1); alert(2); alert(3); // 3 alerts
alert(1), alert(2), alert(3); // 3 alerts too
Run Code Online (Sandbox Code Playgroud)
alert("2",
foo = function (param) {
alert(param)
},
foo('1')
)
foo('3'); // alerts 1, 2 and 3
Run Code Online (Sandbox Code Playgroud) 什么是动态创建这个简单数组的最有效方法.
var arr = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];
Run Code Online (Sandbox Code Playgroud)
假设我们可以从变量得到数字10
var mynumber = 10;
Run Code Online (Sandbox Code Playgroud) 我想创建一个二维数组,用布尔值初始化,设置为false.目前我正在使用这种数组创建方法:
const rows = 3
const cols = 5
const nestedArray = new Array(rows).fill(
new Array(cols).fill(false)
)
Run Code Online (Sandbox Code Playgroud)
在nestedArray看起来不错,但只要我改变的值nestedArray[0][2],值nestedArray[1][2],并nestedArray[2][2]也得到改变.
我想这是因为子数组是相同的,可能是因为它们通过引用而不是通过值填充到父数组中.
相反,创建一组不相同的子阵列的优雅而有效的方法是什么?
这里究竟错在哪里?我收到“无法读取未定义的属性‘推送’”错误,我相信这是因为无法通过在循环中简单地声明数组来将其设置为多维。
var single = [];
for (var i = 0; i < all.length; i++) {
name = all[i].name;
single[name].push(all[i]);
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的是这种结构:
Array (
([name1] => [node1],[node2],[node3]),
([name2] => [node1],[node2],[node3],[node4],[node5],[node6]),
([name2] => [node1],[node2])
etc...
)
Run Code Online (Sandbox Code Playgroud)
我试过在这里搜索 SO,但到目前为止只有两个选择:
选项 1:声明变量的简写,又名 [[]],它不起作用。
var single = [[]];
Run Code Online (Sandbox Code Playgroud)
选项 2:链接添加另一个循环以在填充之前计算出数组。
var matrix = []
cols = 3;
//init the grid matrix
for ( var i = 0; i < cols; i++ ) {
matrix[i] = [];
}
Run Code Online (Sandbox Code Playgroud)
我宁愿找到一个更短的解决方案,也因为我的数组元素必须有键,而在上面的解决方案中,它们被编号。
编辑:由于 JS …