Добавление элемента в элемент в массив, используя [this.length] - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь добавить элементы в массив, используя текущую длину массива в качестве следующего индекса.Например:

var arr = ["one","two","three"];
arr[this.length] = "four";

, но он просто заменяет первый элемент новым, поэтому я получаю ["four", "two", "three"].this не ссылается на массив?

Ответы [ 4 ]

0 голосов
/ 02 декабря 2018

Почему бы просто не использовать метод Array.prototype.push?

var arr = ["one","two","three"];
arr.push("four");

Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

0 голосов
/ 01 декабря 2018

Разве this не ссылается на массив?

Нет, это не так.Чтобы понять значение this, прочитайте https://www.w3schools.com/js/js_this.asp.. Здесь вы должны использовать arr.length.Кроме того, вы можете использовать arr.push(), чтобы добавить элемент в конец массива.

0 голосов
/ 01 декабря 2018

с синтаксисом деструктора ES6 без побочных эффектов ...

const arr = ['one', 'two', 'three'];
const withFour = [...arr, 'four'];
0 голосов
/ 01 декабря 2018

На самом деле вы используете свойство length из Window объекта.

Window.length

Возвращает количество кадров (либоили элементы) в окне.

В вашем случае возвращается 0.

console.log("length" in window);
console.log(window.length);

То, что вы действительно хотите сделать, это

var arr = ["one","two","three"];
arr[arr.length] = "four";

console.log(arr);
...