javascript array.slice (). push () не работает должным образом - PullRequest
0 голосов
/ 25 апреля 2018

Следующий код производит (в консоли Chrome javascript)

a: (3) [1, 2, 3] b: (4) [1, 2, 3, 99] c: 4

Я ожидал, что c будет выглядеть как b.Почему нет?

function snafu(){
    var a = [1,2,3];
    var b = a.slice();
    var c = a.slice().push(99);
    b.push(99);
    console.log("a:",a,"  b:",b,"  c:",c);
}

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Хорошо, помните, Array.slice() вернет вам новый массив. Поэтому, нажимая на slice(), он вернет вам длину массива.

function snafu(){
    var a = [1,2,3];
    var b = a.slice();
    var c = a.slice();
    c.push(99);
    b.push(99);
    console.log("a:",a,"  b:",b,"  c:",c);
}

snafu();

variable c даст вам новый массив, так что вы сможете делать все, что захотите, с c.

Вот и все. Легко !!!!

0 голосов
/ 25 апреля 2018

Array.push() дает вам значение Array.length, а не сам массив

var a = [];
var b = a.push(8); /* returns length of array after pushing value into array */
console.log('a = ', a, ', b = ', b);
...