Инициализация массива Typescript - PullRequest
0 голосов
/ 24 апреля 2020

let s:number[][];

Как мне заполнить эту матрицу s как 0 из n * n.

[[0, ..., 0], [0, ..., 0] ... [0, ..., 0]]

Это то, что я ' я делаю

for(let i = 0;i < n;i ++) {
    let ss = [];
    for(let j = 0;j < n ;j ++)   ss.push(0);
    s.push(ss);
}

Это работает, но есть ли более эффективный и изощренный способ?

Ответы [ 3 ]

2 голосов
/ 24 апреля 2020

Вы можете использовать метод массива fill:

s = new Array(n).fill(new Array(n).fill(0));
2 голосов
/ 24 апреля 2020
const s = [...Array(n)].map(e => Array(n).fill(0))

Я использую этот способ!

1 голос
/ 24 апреля 2020

Попробуйте использовать Array.from:

fillTwoDArray = (rows, columns,  defaultValue) => {
      return Array.from({ length:rows }, () => (
          Array.from({ length:columns }, ()=> defaultValue)
       ))
    }

console.log(fillTwoDArray(3, 7, 'foo'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...