2-х мерный массив из объектов
Здравствуйте!
Пытаюсь сделать сабж, но код вообще зависает) Или есть другой способ сделать 2-х мерный массив из Object'ов?
function CreateMatrix2D(Width, Height)
{
var MX = [];
while (Height--)
{
var A = new Array();
for (var x = 0; x < Width; ++x)
{
var ID = new Object();
ID.Value = 0;
A.push(ID);
}
MX.push(A);
}
return MX;
}
|
Цитата:
Цитата:
function CreateMatrix2D(Width, Height) {
return new Array(Height).fill(new Array(Width).fill({
Value: 0
}))
}
console.log(CreateMatrix2D(2, 3))
|
рони, Так нельзя
new Array(Width).fill({Value: 0 })
Вот что получится Один раз создастся объект {Value: 0 } и все элементы массива заполнятся ссылками на него, на единственный объект. Надо
Array.from({length:Width}, () => {Value:0})
function CreateMatrix2D(Width, Height) {
return Array.from({length:Height},
() => Array.from ({length: Width},
() => {Value: 0}
)
)
}
console.log(CreateMatrix2D(2, 3))
|
Цитата:
|
Цитата:
alert(JSON.stringify(CreateMatrix2D(2, 3), null, 3))
//
function CreateMatrix2D(Width, Height){
var MX = [];
for (var i = 0; i < Height; ++i) {
var A = [];
for (var j = 0; j < Width; ++j) {
A.push({Value: 0});
}
MX.push(A);
}
return MX;
}
|
Благодарю
|
| Часовой пояс GMT +3, время: 20:05. |