创建多dim数组(JS)
creating multi-dim arrays (JS)
我试图创建一个三维数组,找不到一个简单的方法来做到这一点。
array = [[[]]];
或
array = [][][];
或
array = []; array[] = []; array[][] = [];
例如,就不能工作。(控制台会说第二个数组是'undefined'而不是对象,或者对于第二个和第三个示例给出解析错误)。
我也不能硬编码信息,因为我不知道数组的索引和内容是什么(它们是"在飞行中"创建的,取决于用户的输入)。例如,第一个数组的索引可能是4192)。我可能需要在赋值之前创建每个数组,但如果有一种更简单的方法来定义三维数组,那将会更容易更快。(总共有2个数组,25个子数组和800个子数组)可以说,每毫秒都能挽救一条生命。
帮助吗?
JavaScript是动态类型的。把数组存储在数组中。
function loadRow() {
return [1, 2, 3];
}
var array = [];
array.push(loadRow());
array.push(loadRow());
console.log(array[1][2]); // prints 3
由于javascript中的数组不是真正的数组,因此没有真正的多维数组。在javascript中,你只有数组中的数组。您可以像这样静态地定义数组:
var a = [
[1,2,3],
[4,5,6],
[7,8,9]
];
或者动态地像这样:
var d = [];
var d_length = 10;
for (var i = 0;i<d_length;i++) {
d[i] = [];
}
你也可以使用一些辅助函数:
function ensureDimensions(arr,i,j,k) {
if(!arr[i]) {
arr[i] = [];
}
if(!arr[i][j]) {
arr[i][j] = [];
}
}
function getValue(arr,i,j,k) {
ensureDimensions(i,j,k);
return arr[i][j][k];
}
function setValue(arr,newVal,i,j,k) {
ensureDimensions(i,j,k);
arr[i][j][k] = newVal;
}
相关文章:
- JS数组-检查对象值是否重复
- 将JS数组附加到变量并显示它
- 正在尝试将JSON文件放入JS数组
- 删除JS数组中的最小数字
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- 如何将JS数组添加到Meteor自动表单条目中
- 了解JS数组和拼接
- JS数组称为“;name”;行为怪异
- 在js数组中不断循环并暂停
- 根据范围过滤角度.js数组
- 循环访问 JS 数组 + 数组属性
- 为什么当我在JS数组上调用.toString时得到“对象对象”
- Ember.js数组控制器计算属性的复选框
- 我的JS数组打印只显示结束值
- 如何在AngularJs中将json数组转换为js数组
- JS数组无理由地传递值更改
- 是否可以引用JS数组/对象中的另一个元素
- 将jQuery事件函数应用于新的Knockout.js数组元素
- 通过多列和多个值过滤angular js数组
- 在js数组中查找下一个和上一个键