javascript - 按另一个数组对对象数组进行排序

标签 javascript jquery underscore.js

我有一个看起来像这样的对象数组。

var items = [
  {id: 1150, title: 'im tyler'},
  {id: 1195, title: 'im josh'}
];

另一个数组看起来像这样:

var sortArray = [
'1195',
'1150'
];

我想要完成的是基于排序数组的结果进行排序。因此,在这种情况下,items 数组应将 id = 1195 的对象排序为列表中的第一个。另外,如果 sortArray 中只有一个 id,则它应该只在 items 数组中显示该对象。

想要的结果:

var Newitems = [
  {id: 1195, title: 'im josh'}
  {id: 1150, title: 'im tyler'},
];

最佳答案

您可以循环排序数组,并在每次迭代中查找源数组中的元素。如果找到,则将结果推送到新数组。

虽然它生成了一个新数组,但请注意,这些项目仍然引用原始数组。新数组仅包含对原始项目的引用。

var sortArray = [
  '1195',
  '1150'
];

var items = [
  {id: 1150, title: 'im tyler'},
  {id: 1195, title: 'im josh'}
];

var res = [];

sortArray.forEach(item => {
  res.push(items.find(i => i.id.toString() === item));
});

console.log(res);

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

相关文章:

jquery - Bootstrap 4如何在第二个词缀出现时删除第一个词缀

jquery - 使用 jquery 根据 td 的数量设置 td 的宽度

javascript - 删除 DOM 中的元素样式

javascript - 按字母顺序对 Backbone 集合进行排序

javascript - 需要帮助让 Zapier 脚本示例在 JSFiddle 中工作

javascript - 使用复选框中选中的值自动填充文本框值,但保留手动输入的值

javascript - 使用 .after() 一个接一个地插入一个元素并不完全有效

javascript - CoffeeScript 类变量

javascript - 滚动时淡入和淡出的图像(jquery)

javascript - 无法让 .siblings() 在 jQuery 中工作