Javascript 基于数组对对象进行排序以生成已排序数组

Javascript 基于数组对对象进行排序以生成已排序数组,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,对象在显示时不按顺序排列,因此我必须将现有对象转换为数组,但要按顺序排列 我将此数组作为顺序[1,2,3] 这是我的原始输入 {'2': 'two', '3': 'three', '1':'one'} 如何创建一个函数来生成一个新数组,其中顺序跟随上面的排序键 我被困在这个阶段 //expected ['one', 'two', 'three'] const order = ['1', '2', '3'] const source = { '2': 'two', '3': 'thre

对象在显示时不按顺序排列,因此我必须将现有对象转换为数组,但要按顺序排列

我将此数组作为顺序
[1,2,3]

这是我的原始输入

{'2': 'two',
'3': 'three',
'1':'one'}
如何创建一个函数来生成一个新数组,其中顺序跟随上面的排序键

我被困在这个阶段

//expected 
['one', 'two', 'three']
const order = ['1', '2', '3']
const source = {
  '2': 'two',
  '3': 'three',
  '1': 'one'
}

let sorted = Object.keys(source).map(o => {
  //return order.includes(o) ? //what to do here : null
})

我想我必须在循环中循环。

您可以减少排序数组,并从源对象中找到相关字符串。这种方法只使用一个循环,因此效率更高

const order=['1','2','3','4','5'];
常量源={
"2":"2",,
‘五’:‘五’,
"三":"三",,
“1”:“1”,
‘4’:‘4’
};
让排序=顺序。减少((对象,项目)=>{
目标推送(来源[项目]);
返回obj;
}, []);

控制台日志(已排序)
可以简单地映射
顺序
数组,并从
返回相应的值。除此之外的任何事情都过于复杂了

const order=['1','2','3']
常量源={
"2":"2",,
"三":"三",,
“1”:“一”
}
const sorted=order.map(n=>source[n])

console.log(sorted)
我觉得很有趣,你如何发布一个在所有正常情况下都不能通过使用属性顺序解决的问题,认识到这一点,然后使用依赖属性顺序的唯一可能的示例。