javascript - React Immutable JS 如何订购 map

标签 javascript list reactjs redux immutable.js

我有一个搜索操作,它在 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/

相关文章:

javascript - 在 React JS 中传递纬度和经度作为 Prop 的最佳方式

javascript - 使用 fetch 的 XML 请求和响应?

javascript - 如何正确录制 MediaStream?

javascript - jQuery的each方法中的 "callback.call( value, i, value )"是什么意思?

list - Prolog:如何删除列表的第二个元素

python - 每当列表中有零时,创建一个新的前导字符子列表,不包括零

python - 将一些列 append 到列表矩阵的列表中

reactjs - 如何通过选择数据列表来测试更改事件的触发器

javascript - 从 JSON API React Native 打印值

javascript - 给出输入后更改图像