#javascript #arrays #typescript #dimensions
Вопрос:
Я пытаюсь сгенерировать 2d числовой массив при инициализации машинописного текста:
weight: number[][] = [];
И ценности поколения:
private generateWeights(): void {
this.weight = [];
for (let i = 0; i < 7; i ) {
this.weight[i] = [];
for (let j = 0; j < 5; j ) {
this.weight[i][j] = Math.random() * 2;
}
}
console.log('this.weight: ', this.weight);
}
Но на консоли я получаю некоторые статические значения, такие как изображение:
Когда я пытаюсь напечатать строку 2d-массива, я получаю странную консоль.log:
Комментарии:
1. логика цикла выглядит хорошо, в идеале она должна давать разные значения. Вы пробовали несколько раз?
2. да, после каждой попытки я получаю одни и те же значения. Когда я использую консоль. (Случайное значение) Я вижу значение записи, но массив всегда получает эти значения. Я понятия не имею, почему
3. Консоль выводит
-0
данные, что должно быть невозможно, если только предоставленный вами код не является полным. Что еще такое редактированиеweights
?4. Ничего. Это полный код для массива весов geterate
5. Для запуска файла вам следует использовать другой браузер… Из-за того, как консоль
Ответ №1:
Я собрал игровую площадку с одним подходом, который вы могли бы использовать, который хорошо работает, по крайней мере, при самостоятельной работе. Извините, не зная, как выглядит остальная часть вашего кода, нелегко понять, почему вы столкнулись с проблемой.
function generateWeights(rows: number, cols: number): number[][] {
return Array.from({ length: rows }).map(() =>
Array.from({ length: cols }).map(() => Math.random() * 2)
);
}
//example invocation
console.log(JSON.stringify(generateWeights(7, 5), null, " "));
Пример вызова производит…
[
[
1.9665769596410398,
0.32225623317750873,
1.979382321105576,
1.3400841950364906,
0.0333557898363388
],
[
0.523308974899896,
0.519975189295653,
0.14464403965018624,
0.7799904829432234,
0.7748489552011621
],
[
1.2637757372417209,
0.9375011277636429,
0.46157500412620367,
0.7470383909903693,
0.45140251266154596
],
[
0.9576573640144601,
0.7096653222305775,
1.7104635189269257,
0.16415705266079472,
0.38377189535968403
],
[
0.04732945754404572,
0.7050064626827024,
0.8450634927445284,
0.12460094121473508,
0.6501398542245567
],
[
0.5087564269629801,
0.8193243695084456,
1.4786471319572896,
0.35962390487698004,
1.5651415242853055
],
[
0.31416888386760533,
1.088122706073758,
0.9604222417055066,
0.6956030508790003,
1.6623759187576028
]
]
Комментарии:
1. Спасибо, проблема была в этой консоли. журнал работает с некоторой небольшой задержкой, и массив успел быть перезаписан до того, как он будет напечатан в консоли