разделить массив на две части на основе индекса в JavaScript - PullRequest
29 голосов
/ 29 июля 2011

У меня есть массив со списком объектов. Я хочу разделить этот массив по одному индексу, скажем, 4 (в действительности это переменная). Я хочу сохранить вторую часть массива разбиения в другой массив. Возможно, все просто, но я не могу придумать, как это сделать.

Ответы [ 6 ]

61 голосов
/ 29 июля 2011

Используйте ломтик , как таковой:

var ar = [1,2,3,4,5,6];

var p1 = ar.slice(0,4);
var p2 = ar.slice(4);
8 голосов
/ 17 июля 2017

Вы можете использовать Array@splice, чтобы отрезать все элементы после указанного индекса от конца массива и вернуть их:

x = ["a", "b", "c", "d", "e", "f", "g"];
y = x.splice(3);
console.log(x); // ["a", "b", "c"]
console.log(y); // ["d", "e", "f", "g"]
4 голосов
/ 29 июля 2011

использование срез :

var bigOne = [0,1,2,3,4,5,6];
var splittedOne = bigOne.slice(3 /*your Index*/);
1 голос
/ 01 декабря 2018

Я бы порекомендовал использовать slice (), как показано ниже

ar.slice(startIndex,length); или же ar.slice(startIndex);

var ar = ["a","b","c","d","e","f","g"];

var p1 = ar.slice(0,3);
var p2 = ar.slice(3);

console.log(p1);
console.log(p2);
0 голосов
/ 19 сентября 2018

Простая функция от lodash: const mainArr = [1,2,3,4,5,6,7] const [arr1, arr2] = _.chunk(mainArr, _.round(mainArr.length / 2));

0 голосов
/ 21 мая 2014

Вы также можете использовать оболочку подчеркивания / lodash:

var ar = [1,2,3,4,5,6];
var p1 = _.first(ar, 4);
var p2 = _.rest(ar, 4);
...