使用 prototype.slice.call 定义动态二维数组
defining a dynamic 2 dimensional array using prototype.slice.call
我尝试使用prototype.slice.call创建一个动态二维数组。数组维度因用户插入的值 k 而异。代码如下:
var A = new Array(k);
if (k > 1) {
var args = Array.prototype.slice.call(k, 1);
for (var n = 0; n < k; n++) {
A[n] = new Array.apply(this, args);
}
}
alert (A);
.slice()
是错误的工具。它用于制作另一个数组或数组的一部分的浅层克隆。
如果您正在寻找方形结构,您只需使用 2 个嵌套循环来创建外部和内部数组。
var k = 10;
var a = [];
for (var i = 0; i < k; i++) {
a[i] = [];
for (var j = 0; j < k; j++) {
a[i][j] = i + ':' + j;
}
}
http://jsfiddle.net/zGhnv/
>[["0:0","0:1","0:2","0:3","0:4","0:5","0:6","0:7","0:8","0:9"],['"1:0'",'"1:1'",'"1:2'",'"1:3'",'"1:4'",'"1:5'",'"1:6'",'"1:7'",'"1:8'",'"1:9'"],['"2:0'",'"2:1'",'"2:2'",'"2:3'",'"2:4'",'"2:5'",'"2:6'",'"2:7'",'"2:8'",'"2:9'"],['"3:0'",'"3:1'",'"3:2'",'"3:3'",'"3:4'",'"3:5'",'"3:6'",'"3:7'",'"3:8'",'"3:9'"],['"4:0'",'"4:1'",'"4:2'",'"4:3'",'"4:4'",'"4:5'",'"4:6'",'"4:7'",'"4:8'",'"4:9'"],['"5:0'",'"5:1'",'"5:2'",'"5:3'",'"5:4'",'"5:5'",'"5:6'",'"5:7'",'"5:8'",'"5:9'"],['"6:0'",'"6:1'",'"6:2'",'"6:3'",'"6:4'",'"6:5'",'"6:6'",'"6:7'",'"6:8'",'"6:9'"],['"7:0'",'"7:1'",'"7:2'",'"7:3'",'"7:4'",'"7:5'",'"7:6'",'"7:7'",'"7:8'",'"7:9'"],['"8:0'",'"8:1'",'"8:2'",'"8:3'",'"8:4'",'"8:5'",'"8:6'",'"8:7'",'"8:8'",'"8:9'"],['"9:0'",'"9:1'",'"9:2'",'"9:3'",'"9:4'",'"9:5'",'"9:6'",'"9:7'",'"9:8'",'"9:9'"]]
请注意,我真的不需要声明数组的初始长度。我可以根据需要向每个数组添加成员。
如果要预先声明长度,可以将两个[]
替换为 new Array(k)
。
相关文章:
- 作为一个二维数组,从ajax接收
- 创建P5.js二维数组
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- inArray,indexOf在二维数组中
- 比较二维数组js
- 从二维数组中获取img src和img维度,并在body中显示
- 如何在Java Script中比较二维数组和一维数组,并将常见数据存储在另一个数组中
- 如何将以下字符串拆分为二维数组:
- 更新Aurelia中二维数组的视图
- 如何在JavaScript中拆分二维数组
- 在二维数组中搜索比嵌套循环更有效的方法
- 无法访问javascript中二维数组中的第二个字段
- 将一个二维数组传递给javascript中的函数
- 无法在 Javascript 中访问我的二维数组
- 如何在jquery或js中创建动态二维数组
- 使用 prototype.slice.call 定义动态二维数组
- 具有静态和动态值的二维数组
- 如何用javascript创建动态二维数组
- 在二维数组中动态创建索引
- 动态构造二维数组