javascript - 如何根据另一个数组的顺序对一个对象数组进行排序?

标签 javascript arrays json algorithm sorting

我有一个对象列表:

[ { id: 4, name:'alex' }, { id: 3, name:'jess' }, { id: 9, name:'...' }, { id: 1, name:'abc' } ]

我有另一个具有正确“顺序”的列表。

[ 3, 1, 9, 4]

如何根据键“id”将第一个列表与第二个列表的顺序相匹配? 结果应该是:

[ { id: 3, name:'jess' }, { id: 1, name:'abc' }, { id: 9, name:'...' }, { id: 4, name:'alex' } ]

最佳答案

我介入了这个问题并用一个简单的.sort解决了它

假设您要排序的列表存储在变量 needSort 中,带有顺序的列表在变量 order 中,并且两者都在同一范围内可以像这样运行 .sort:

needSort.sort(function(a,b){
  return order.indexOf(a.id) - order.indexOf(b.id);
});

它对我有用,希望对你有帮助。

关于javascript - 如何根据另一个数组的顺序对一个对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755889/

相关文章:

javascript - 输入类型 ="text"货币验证

javascript - 从 NodeJs 中的函数内保存或返回 REST 服务响应

java - 设置数组索引的值

c - 按升序对数字进行排序

c# - WebClient.UploadValues 到 WebClient.UploadValuesAsync

javascript - vue.js: `vue create` 在项目文件夹中仅创建 3 个文件(package.json、package-lock.json、README.md)

javascript - Jquery TokenInput 未加载结果

javascript - 通过属性名称数组访问嵌套对象

iPhone + JSON + 反射

java - JSON到android/java中的多维数组