2016-09-12 1 views
1

Здесь я пытаюсь создать mtrix с фиксированным количеством строк и нефиксированным числом столбцов, например, ниже.
Как создать матрицу/массив массива с фиксированным числом строк и нефиксированным числом столбцов?

var matrix=[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0,0 ]] 

пытаюсь этот код

function matrix1(m, n) { 
    for ( m = 9;m>0;m--) 
    { 
     for (var n=m;n>0; n--) 
     { 
      return Array.from({ 
       length: m 
       },() => new Array(n).fill(0)); 
     } 
     document.write("<br>");  
    }  
}; 

var cols=9 
var counter=9; 
matrix(counter,cols); 

и я ожидаю выход этого кода, как как

var matrix=[[0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0], 
      [0, 0, 0, 0], 
      [0, 0, 0], 
      [0, 0], 
      [0]] 

и я получаю выход в

var matrix=[[0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0], 
      [0, 0, 0, 0, 0, 0, 0, 0, 0]] 

Что случилось с моим кодом?

ответ

1

Просто небольшие изменения в коде

function matrix(m, n) { 
var arr = []; 
for ( m = 9; m>0; m--) 
    { 
     for (var n = m;n>0; n--) 
     { 
      arr.push(new Array(n).fill(0)) 
     } 
     return arr; 
    } 
}; 

var cols=9 
var counter=9; 
console.log(matrix(counter,cols)); 

Это будет работать

Рабочий пример: https://jsbin.com/?html,js,output

Надеюсь, это поможет. Благодаря !

+0

Спасибо, @ KrishCdbry – sharepoint2013

+0

Большинство Добро пожаловать @ M56035G :) – KrishCdbry

1

Вы можете использовать комбинацию array.map и array.fill

function createMatrix(m, n) { 
 
    return new Array(m).fill('').map(function(el, index) { 
 
    return n > index ? new Array(n - index).fill(0) : []; 
 
    }); 
 
} 
 
console.log(createMatrix(7, 7))

+0

это exclt то, что я пытался, но этот код создать минимальный массив размера столбца с 3, что, если я хочу его до 1 – sharepoint2013

+0

Благодаря @Rajesh это действительно полезно – sharepoint2013

Смежные вопросы