我想在Map内的不可变列表内交换项目,
例:

const Map = Immutable.fromJS({
    name:'lolo',
    ids:[3,4,5]
});


我正在尝试使用splice进行交换,也尝试使用insert()不可变方法。

可以说我想从[3, 4, 5]交换到[3, 5, 4],我正在进行如下操作:

list.set('ids', list.get('ids').splice(2, 0, list.get('ids').splice(1, 1)[0])

使用Immutable.js对不可变数据结构中的元素进行排序的最佳方法是什么?

最佳答案

您应该为此使用Map.update()List.withMutations()

map.update('ids', idsList => idsList.withMutations(function (idsList) {
    let temp = idsList.get(2);
    return idsList.set(2, idsList.get(1)).set(1, temp);
}));


请注意,我已将您的list重命名为map-实际上是一个Map

对于简单的分类,请

map.update('ids', idsList => idsList.sort(function (a, b) {
    // magic
});

09-25 16:29