сгенерировать 2d массив со случайными значениями машинописного текста

#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. Спасибо, проблема была в этой консоли. журнал работает с некоторой небольшой задержкой, и массив успел быть перезаписан до того, как он будет напечатан в консоли