Immutable.js中的列表列表

时间:2017-02-01 20:46:02

标签: javascript list immutable.js

我想要列表和推送元素列表,但我不断获取没有元素的列表,我无法想到原因。

我从

开始
override func mouseDown(with event: NSEvent) {
   super.mouseDown(with: event)
   if event.clickCount >= 2 {
      ... 
   }
}

我希望

List([ List([]), List([]) ]);

我的代码如下:

List([ List([2,4]), List([3,6]) ]);

当我运行它时,会打印出来:

const { List } = require('immutable')

list = List([ List([]), List([]) ]);
list.get(0).push(2);
list.get(1).push(3);
list.get(0).push(4);
list.get(1).push(6);

console.log(list);

列表中没有元素。

1 个答案:

答案 0 :(得分:2)

当然List中没有元素。

当你这样做时

list.get(0).push(2);

您没有通过将0推入2来改变位置,因为您正在假设,您正在获得一个新的List做这个操作的结果,这是不可变的点,而不是改变原始集合,你得到一个新的。

这就是你尝试用Immutable做的事情:

const { List } = require('immutable')

list = List([ List([]), List([]) ]);
list = list.set(0, list.get(0).push(2));
list = list.set(1, list.get(1).push(3));
list = list.set(0, list.get(0).push(4));
list = list.set(1, list.get(1).push(6));

console.log(list);
  

列出[列表[2,4],列表[3,6]]