admin管理员组

文章数量:1203179

How can I push empty element to an existing Js array, lets assume :

var arr = [54,77,21];
var target = [54,77,21,,,,36];
arr.push(); //do not append an empty element into the array.
arr.push();

console.log(JSON.stringify(arr)); //output: [54,77,21]

How can I push empty element to an existing Js array, lets assume :

var arr = [54,77,21];
var target = [54,77,21,,,,36];
arr.push(); //do not append an empty element into the array.
arr.push();

console.log(JSON.stringify(arr)); //output: [54,77,21]

How to append empty elements so "arr" will be equivalent to "target" array?

Share Improve this question asked Jul 25, 2019 at 8:00 Voice Of The RainVoice Of The Rain 5871 gold badge12 silver badges31 bronze badges 4
  • Nope I tried that it will append a string element [54,77,21,""] – Voice Of The Rain Commented Jul 25, 2019 at 8:03
  • 1 Possible duplicate of How to represent an array with empty elements in JSON? – Mohammad Usman Commented Jul 25, 2019 at 8:03
  • What you try to do? Why you need these empty elements? Maybe you need object for that: {0:54, 1: 77, 2: 21, 6: 36}? – Justinas Commented Jul 25, 2019 at 8:04
  • @Justinas I have a chartjs and it require the array like this , so it will not render a point in there. – Voice Of The Rain Commented Jul 25, 2019 at 8:07
Add a comment  | 

3 Answers 3

Reset to default 9

You could address the index directly. This builds a sparse array.

var arr = [54,77,21];

arr[6] = 36;
console.log(JSON.stringify(arr));

Or push undefined until you like to push the value. This returns a filled array.

var arr = [54,77,21];

arr.push(undefined);
arr.push(undefined);
arr.push(undefined);
arr.push(36);
console.log(JSON.stringify(arr));

By using JSON.stringify, you get for undefined or sparse items null, because JSON knows only null instead of undefined.

You can use Array#length:

arr.length++;

You can set the length property to truncate an array at any time. When you extend an array by changing its length property, the number of actual elements increases; for example, if you set length to 3 when it is currently 2, the array now contains 3 elements, which causes the third element to be a non-iterable empty slot.

But note that JSON does not support sparse arrays. I.e. you cannot see empty slots with JSON.stringify.

var arr = [54,77,21];
arr.length++;
arr.length++;
arr.length++;
arr.push(36);
console.log(arr);

(FYI: Stack Snippets do not seem to support sparse arrays correctly. You need to run that code in the browser console instead.)

You could use the array.prototype.concat() method.

    var arr1 = [1, 2, 3, 4];

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

    console.log(arr1);
    console.log(arrtarget);

    newArr = arr1.concat([, , , 5,6]);

    console.log(newArr);

Alternatively, you could use the Array.Prototype.push() method as

arr1.push(undefined);

本文标签: Push an empty element into javascript arrayStack Overflow