У меня есть массив, подобный [a, b, c, d], и я хочу разделить его на 2 массива, например, [a, b] и [c, d], а затем объединить, чтобы получить конечный результат, например [[a, б], [с, д]].Можно ли обойтись без цикла for?
Вы можете использовать slice и push метод, подобный этому
slice
push
var arr = ['a', 'b', 'c', 'd']; let index = 2; let result = []; result.push(arr.slice(0, index)); result.push(arr.slice(index)) console.log(result);
Я нашел другое решение для этой проблемы, без написания циклов Lodash Chunk выполняет эту логику
_.chunk(['a', 'b', 'c', 'd'], 2); // => [['a', 'b'], ['c', 'd']]
https://lodash.com/docs/
Вам может понравиться что-то вроде этого:
a = 8; b = { some: 'say'}; c = 'life'; d = true; let o = { 'a': [a, b, c, d], 'a1': [], 'a2': [] } nSwitchBefore = 2; o.a.forEach(function(item, i) { i < nSwitchBefore ? this.a1.push(item) : this.a2.push(item) ; }.bind(o)); console.log(o);
Внутри функционального блока есть место для дополнительной обработки ваших элементов массива. Как фильтрация или специальная обработка определенных типов, используя все условия, которые вы хотите.
let arr = [0, 1, 9, 10, 8]; let arr2 = arr.slice(1,3); let resultArr = []; if(arr2[1] > 1){ resultArr.push(99); } else{ resultArr.push(100); } console.log(resultArr)
да, без цикла вы можете сделать это, но вы должны знать, по какому индексу вы должны разбивать массив.
var arr = ['a', 'b', 'c', 'd']; var indexToSplit = arr.indexOf('c'); var first = arr.slice(0, indexToSplit); var second = arr.slice(indexToSplit + 1); var final = [first, second] console.log(final);