У меня тоже была эта проблема, я нашел очень простое решение, которое в любом случае не включало манипулирование данными. Если вы разорёте результат в DOM, в каком-то списке. Вы можете использовать flexbox и настроить класс для изменения элементов в своем контейнере.
.reverse {
display: flex;
flex-direction: column-reverse;
}
Вам нужно отделить ваш 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
Если вы хотите преобразовать свой вход 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);
ЕСЛИ ТОЛЬКО Я догадался, что вы ищете правильно, ниже приведен код:
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));
}