简体   繁体   中英

How can I push array inside array

I have an array and I want to put it in another array using indexes.

For example:

arry[1].push(sub_array_1)
array[2].push (sub_array_2)

But I get an error if I write:

var sub_array_1 = [1, 2, 2, 2, 2];

arry[1].push(sub_array_1)

Using spread operator

var subArray = [1, 4, 6, 7];
var mainArray = [6, 7, 8];
var index = 1;
mainArray = [...mainArray.slice(0, index), subArray, ...mainArray.slice(index)];

Assuming:

var arry = [9,8,7];
var sub_array_1 = [1,2,2,2,2];
  1. If you are trying to insert sub_array_1 into arry , as a single element , just use splice directly:

     arry.splice(1, 0, sub_array_1);

    The result will be:

     [9,[1,2,2,2,2],8,7]
  2. On the other hand, if you are trying to insert the contents of sub_array_1 before the second element of arry , you can do something like this:

    Array.prototype.splice.apply(arry, [1, 0].concat(sub_array_1));

    The result will be:

     [9,1,2,2,2,2,8,7]

    Here is a more general function:

     function insert(arrayDest, index, arraySrc) { Array.prototype.splice.apply(arrayDest, [index, 0].concat(arraySrc)); }

    [EDITED]

    Starting with ES6, you can simplify the above code using the spread operator ( ... ). For example:

     function insert(arrayDest, index, arraySrc) { arrayDest.splice(index, 0, ...arraySrc); }

You're using wrong syntax! Follow the either below mentioned approach.

var sub_array_1 = [1,2,2,2,2];
arry[1] = sub_array_1;

// OR

var sub_array_1 = [1,2,2,2,2];
arry.push(sub_array_1);

.push(ele) will add an item to an array, thereby incrementing the length of array by 1. Remember array index starts at 0 .

If you need to add an item(array/object/other) to a particular index, use [index]. Eg: arry[0] = [1,23]; arry[1] = [4,5,6,7]; arry[0] = [1,23]; arry[1] = [4,5,6,7];

 let array = [] array.push({"index": 0, "value":100}) console.log(array)

maybe it helping for you

obj.arrayOne.push(arrayLetters);

或者

obj['arrayOne'].push(arrayLetters);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM