Неизменный размер списка JS - PullRequest
0 голосов
/ 09 октября 2018

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

Как и в примере на официальном документе https://facebook.github.io/immutable-js/docs/#/List/push, добавление чего-либо в неизменяемый список js автоматически увеличивает размер.

В моем коде:

const list: List = List();
list.push(object);
console.log(list, list.size);

Мой вывод в консолье:

(1) object
length: 1
___proto___: Array(0)

undefined

Это действительно отличается от предполагаемого вывода.Нет размера, если я использую длину в своем коде Typescript, скажите мне, что в List его не существует.Я использую React с Typescript и Immutable.JS

Кто-нибудь имеет представление о том, что происходит?

1 Ответ

0 голосов
/ 09 октября 2018

Неизменяемость означает, что операции не изменяют исходный объект, а создают новый.

В вашем случае метод push вернет список new со всеми старыми элементамии новый, который вы только что добавили.

Ваш код должен выглядеть примерно так.

const list: List = List();
const newList = list.push(object);
console.log(list, list.size);
console.log(newlist, newlist.size);

Это должно вывести размер 0 для переменной list и размер 1 дляпеременная newList.

...