不可变的 JS 列表大小
Immutable JS List size
我不明白不可变 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 会告诉我列表中不存在 "length"。
我将 React 与 Typescript 和 Immutable.JS
一起使用
有人知道会发生什么吗?
不变性意味着操作不会更改原始对象,而是创建一个新对象。
在您的情况下,push
方法将 return 一个包含所有旧元素和您刚刚添加的新元素的 new 列表。
您的代码应如下所示。
const list: List = List();
const newList = list.push(object);
console.log(list, list.size);
console.log(newlist, newlist.size);
这应该为 list
变量打印大小为 0,为 newList
变量打印大小为 1。
我不明白不可变 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 会告诉我列表中不存在 "length"。 我将 React 与 Typescript 和 Immutable.JS
一起使用有人知道会发生什么吗?
不变性意味着操作不会更改原始对象,而是创建一个新对象。
在您的情况下,push
方法将 return 一个包含所有旧元素和您刚刚添加的新元素的 new 列表。
您的代码应如下所示。
const list: List = List();
const newList = list.push(object);
console.log(list, list.size);
console.log(newlist, newlist.size);
这应该为 list
变量打印大小为 0,为 newList
变量打印大小为 1。