我有一个搜索操作,它在 props 中返回以下内容:
rank: List(...)
0: "3"
1: "2"
2: "1"
3: "4"
results: Map(...)
0: Array[2]
0: "2"
1: Record(...)
0: Array[2]
0: "firstName"
1: "Bob"
1: Array[2]
0: "lastName"
1: "Smith"
...
如何按排名列表中的值对结果 map 进行排序?当我使用 results.map() 时,它按 ID(1、2、3、4)对它们进行排序。
最佳答案
您应该避免混合不可变类型和 javascript 类型。
const Person = Record({
lastname: null,
firstname: null,
id: null,
};
因此,结果现在是一个包含人员记录的 Map
result = Map(...)
35: Record(...) { id: 35, lastname: 'smith', firstname: 'bob' }
27: Record(...) { id: 27, lastname: 'smith', firstname: 'Clara' }
9: Record(...) { id: 9, lastname: 'dupont', firstname: 'michael' }
3: Record(...) { id: 3, lastname: 'taylor', firstname: 'morgan' }
const ResultOrdered = rank.map( id => result.get(id));
因此,ResultOrdered 是按排名排序的 RecordPerson 列表
关于javascript - React Immutable JS 如何订购 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48627787/