Добро пожаловать в еще одну серию по алгоритму – алгоритм 202. Мы собираемся сосредоточиться на манипуляции массива.
Сколько способов вы можете быть кусочком массивом?
chunkArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], 2)
/* [
[ 1, 2 ],
[ 3, 4 ],
[ 5, 6 ],
[ 7, 8 ],
[ 9, 10 ],
[ 11, 12 ],
[ 13 ]
]
*/
chunkArray(["Aaran", "Aaren", "Aarez", "Aarman", "Aaron", "Aaron-James", "Aarron"], 3)
/* [
[ 'Aaran', 'Aaren', 'Aarez' ],
[ 'Aarman', 'Aaron', 'Aaron-James' ],
[ 'Aarron' ]
]
*/
Мы хотим посмотреть 3 способа достичь этого.
Предпосылка
Чтобы извлечь выгоду из этой статьи, вам необходимо иметь базовое понимание методов массива JavaScript.
Давайте кусок массива, используя:
- для …..слоуп, push ()
function chunkArray(arr, limiter) {
let finalArray = [];
let tempArray = [];
for (value of arr) {
if (tempArray.length < limiter) {
tempArray.push(value);
} else {
finalArray.push(tempArray);
tempArray = [];
tempArray.push(value);
}
}
finalArray.push(tempArray);
return finalArray;
}
- Для … loop, push (), ломтик ()
function chunkArray(arr, limiter) {
let finalArray = [];
for (let i = 0; i <= arr.length; i += limiter) {
finalArray.push(arr.slice(i, i + limiter));
}
return finalArray;
}
- Для … loop, push (), splice (), если …
function chunkArray(arr, limiter) {
let finalArray = [];
let arrayLength = arr.length;
for (let i = 0; i <= arrayLength; i++) {
if (arr.length != 0) {
finalArray.push(arr.splice(0, limiter));
}
}
return finalArray;
}
Вывод
Есть много способов решать проблемы программно. Вы можете попробовать это с рекурсией или другой петлейной конструкцией. Я буду любить знать другие способы, которыми вы решили свой раздел комментариев.
Если у вас есть вопросы, комментарии или предложения, пожалуйста, снимите их в раздел комментариев.
Следующий: Алгоритм 202: слияние массива без дубликатов 4 способов
Вы также можете следовать и написать мне на платформах социальных сетей.
Твиттер | Linkedin. | Гадость
Спасибо за ваше время.
Оригинал: “https://dev.to/ebereplenty/algorithm-202-array-chunking-in-3-ways-1ank”