Неизменный размер списка 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
переменная.