Неизменный размер списка JS

Я не понимаю, как изменится размер неизменного списка JS.

Как и в примере на официальном документе https://facebook.github.io/immutable-js/docs/, добавление чего-либо в неизменяемый список 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 ответ

Решение

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

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

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

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

Это должно напечатать размер 0 для list переменная и размер 1 для newList переменная.

Другие вопросы по тегам