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, время: 14:19. |