Immutable.JS过滤深度嵌套的Collection filterIn中的集合

时间:2017-07-14 15:34:51

标签: functional-programming immutable.js

我正在使用Immutable.JS并尝试过滤嵌套在父集合中的列表,而不使用变量。

这是汽车收藏的一个例子:

{
  { 1 => {
    id:'1',
    licencePlateNumber: 'BT 226 FQ',
    passengers: ['John', 'Marie', 'Edward'],
  },

  { 2 => {
    id:'2', 
    lice...
    ...
  },
}
爱德华很不高兴,不想再和我们一起去周末,这里是我想要的新系列。

{
  { 1 => {
    id:'1',
    licencePlateNumber: 'BT 226 FQ',
    passengers: ['John', 'Marie'],
  },

  { 2 => {
    id:'2',  
    lice...
    ...
  },
}

为了做到这一点,我可以写:

const removePassenger = (carsCollection, carId, removedPassenger) => {
    const passengers = carsCollection
      .getIn([carId, 'passengers'])
      .filter(pName => pName !== removedPassenger)

    return (carsCollection.setIn([carId, 'passengers'], passengers))
}

作为一名功能程序员,我觉得非常难看。相反,我更喜欢使用像这样的函数'filterIn'。

const removePassenger = (carsCollection, carId, removedPassenger) => {

    return (carsCollection
      .filterIn([carId, 'passengers'], pName => pName !== removedPassenger)
}

这样的功能是否存在?在文档中没有发现任何事情。

0 个答案:

没有答案