【发布时间】:2026-01-31 05:05:01
【问题描述】:
假设我有一个空的一维数组:
var 数据 = [];
现在,我想将值 1 添加到 data[1][1][3];
为此,我需要将数据数组扩展为:
data = [
[],
[],
[[],[],[1]]
]
是的,很确定我必须编写一个函数并将维度值作为一维数组 [1, 1, 3] 传递并检查 1。是否有第二、第三维度,如果“否”则创建它们和 2。如果它的大小大于或等于。
对于这个例子,函数是
function setData(value_, index_){
if(data[index_[0]] == undefined){
data = Array(index_[0] + 1).fill([]);
data[index_[0]] = Array(index_[1] + 1).fill(1);
data[index_[0]][index_[1]] = Array(index_[2] + 1).fill([]);
data[index_[0]][index_[1]][index_[2]] = value_;
}else{
if(data[index_[0]][index_[1]] == undefined){
data[index_[0]][index_[1]] = Array(index_[2] + 1).fill([]);
data[index_[0]][index_[1]][index_[2]] = value_;
}
}
}
它笨拙而直接。我怎样才能把它做成一个通用的东西? 对于任何 # 个维度。
var data = [];
setData(false, [1, 1, 3]);
function setData(value_, index_){
if(data[index_[0]] == undefined){
data = Array(index_[0] + 1).fill([]);
data[index_[0]] = Array(index_[1] + 1).fill(1);
data[index_[0]][index_[1]] = Array(index_[2] + 1).fill([]);
data[index_[0]][index_[1]][index_[2]] = value_;
}else{
if(data[index_[0]][index_[1]] == undefined){
data[index_[0]][index_[1]] = Array(index_[2] + 1).fill([]);
data[index_[0]][index_[1]][index_[2]] = value_;
}
}
}
console.log(data);
【问题讨论】:
标签: javascript multidimensional-array resize extend