gpt4 book ai didi

javascript - 如何使用 Immutable JS Map.setIn 在 Map 中创建深度嵌套的列表?

转载 作者:行者123 更新时间:2023-11-29 21:22:33 25 4
gpt4 key购买 nike

我需要在某个时候使用 Map.setIn 方法创建列表。问题是,当我在路径中指定索引时,它不理解我正在使用 List。以下示例不起作用:

let data = new Map().setIn(['person', 'products', 0, 'isAvailable'], true);
List.isList(data.getIn(['person', 'products'])) // Returns false because it is Map instance

那么,我如何告诉 Immutable JS 在我的案例中“产品”必须 是 List 而不是 Map?在我的例子中,我无法初始化 Map,因为结构非常动态,路径可能会有所不同。

最佳答案

您提供的上述语法是正确的,但前提是“person.products”已经是一个列表。例如

// In this example, `products` won't be a list
(new Map()).setIn(['person', 'products', 1, 'isAvailable'], true)


// In this example, `products` will be a list
var initial = new Map({
person: {
name: '',
products: [{isAvailable: true}, {isAvailable: false}]
}
})

initial.setIn(['person', 'products', 1, 'isAvailable'], true)

这是我能找到的唯一解决方案。

您始终可以编写自己的 setIn 函数来查找整数并将值设置为 new List()

关于javascript - 如何使用 Immutable JS Map.setIn 在 Map 中创建深度嵌套的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38254479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com