在一个级别上获取多个元素 ImmutableJS

Get multiple Elements on one level ImmutableJS

我有一个对象看起来像

const foo = Immutable.fromJS(
    {
        90234:
        {
            bar: 'a'
            metaData: { },
            comment: 'abc',
            photos: [1,2,3,4,5]
        }
    }
)

如何在 'ImmutableJS'.

的一行中得到 commentsphotos
foo.get('90234')....?

由于不可变类型将它们的内容封装起来,您不能 "return" 返回两个不同的内容,但是您可以像这样映射键 -

foo.get('90234')
   .values()
   .map((value, key)=> key=="comments"?doSomething(value): (key=="photos")?doSomethingElse(value):"")

另一种可能性是 return 一个只包含 "comments" 和 "photos" 的新对象,像这样 -

let subSet = foo.get('90234').reduce(
    (accumulator, value, key)=>{
        if (key == "photos" || key == "comments"){
            return accumulator.set(key, value);
        }
        return accumulator;
    },
    new Map()
)