nodejs Отдельный массив

У меня тоже была эта проблема, я нашел очень простое решение, которое в любом случае не включало манипулирование данными. Если вы разорёте результат в DOM, в каком-то списке. Вы можете использовать flexbox и настроить класс для изменения элементов в своем контейнере.

.reverse {
  display: flex;
  flex-direction: column-reverse;
}
0
задан chŝdk 13 July 2018 в 13:50
поделиться

3 ответа

Вам нужно отделить ваш Array до фрагментов 10 и использовать их следующим образом:

const list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30];

//Separate your Array into chunks of 10
let newArray = new Array(Math.ceil(list.length / 10)).fill().map((_,i) => list.slice(i*10,i*10+10));

//Go through your chunks
for(let chunk of newArray){
  //Do whatever you want with them
  console.log('insert into mysql (id, name, age, address, ...) values '+chunk.join(','));
}

In переменная newArray, теперь имеется массив массивов длиной 10 строк. Для получения дополнительной информации см. Сплит-массив в куски .

После этого все, что вам нужно сделать, это пройти через этот массив и создать новый String с помощью Array#join

1
ответ дан Zenoo 17 August 2018 в 12:46
поделиться

Если вы хотите преобразовать свой вход array в array из objects, где каждая object будет удерживать каждую последовательную комбинацию [id, name, age и address), вы можете использовать for loop с шагом, равным 4, чтобы читать каждый 4 элемента в одном object.

Вот как должен быть ваш код:

for (var i = 0; i < array.length; i+=4) {
  result.push({
    id: array[i],
    name: array[i + 1],
    age: array[i + 2],
    address: array[i + 3],
  });
}

Демо:

Это рабочая демонстрация:

var array = [
  'id',
  'name',
  'age',
  'address',
  'id',
  'name',
  'age',
  'address'
];

var result = [];

for (var i = 0; i < array.length; i+=4) {
  result.push({
    id: array[i],
    name: array[i + 1],
    age: array[i + 2],
    address: array[i + 3],
  });
}

console.log(result);

2
ответ дан chŝdk 17 August 2018 в 12:46
поделиться

ЕСЛИ ТОЛЬКО Я догадался, что вы ищете правильно, ниже приведен код:

let arrayFinal = [];
for (var i =0; i < array.length; i+10) {
  end = i + 10;
  end = array.length > end ? end : array.length;
  arrayFinal.push(array.slice(i, end));
}
0
ответ дан UtkarshPramodGupta 17 August 2018 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: