JS 2D массив loop

174
02 октября 2018, 17:10

Суть задачи такова: через Math.random создаем 6 массивов из 3 элементов. Затем эти массивы нужно поместить в массив a так, чтобы они не повторялись. Применить indexOf к 2D массиву, насколько я понял, нельзя. А если использовать if (a[i] != b) {a.push(b)} приведет к тому, что массив будет добавляться после каждого цикла.

var a = [];
for (let i=0; i<6; i++) {
  var b = [];
for (let j=0; b.length<3; j++) {
  var rnd = Math.floor(Math.random()*3+1);
  if (b.indexOf(rnd) === -1) {
    b.push(rnd)
  }
 }
 //здесь нужно дописать для a
}
Answer 1

var a = []; 
var lookup = []; 
while (a.length < 6) { 
  var b = []; 
  while (b.length < 3) { 
    var rnd = Math.floor(Math.random()*3+1); 
    if (b.indexOf(rnd) === -1) { 
      b.push(rnd); 
    } 
  } 
  if (lookup.indexOf(b + "") == -1) { 
    lookup.push(b + ""); 
    a.push(b); 
  } 
} 
console.log(JSON.stringify(a));

READ ALSO
Почему imagemin удаляет содержимое svg файла?

Почему imagemin удаляет содержимое svg файла?

Использую такой task для обработки изображенийПо сути imagemin должен сжимать svg файлы, но в итоге получается, что он просто удаляет содержимое

149
Как получить label выбраного option в datalist?

Как получить label выбраного option в datalist?

Пытаюсь получить значение ( label ) выбранного вариант с ползука ( range )

167
Как избавиться от лишней таблицы в бд

Как избавиться от лишней таблицы в бд

Суть: данная таблица хорошо подходит для описания моих сущностный, проблемы возникают только из-за 2 полейПоле ganre_id может быть у одной сущности,...

182