javascript - 根据数组对对象进行排序以生成排序数组
问题描述
对象在显示时不保证顺序,因此我必须将现有对象转换为数组,但请遵循顺序。
我有这个数组作为订单[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
})
我想我必须在循环中循环。
解决方案
可以简单地映射order
数组并从中返回相应的值source
。除此之外的任何事情都过于复杂
const order = ['1', '2', '3']
const source = {
'2': 'two',
'3': 'three',
'1': 'one'
}
const sorted = order.map(n=>source[n])
console.log(sorted)
推荐阅读
- dpdk - testpmd 无法运行,因为缺少 librte_pmd_bond.so
- python - 在 Docker 中运行 python cronjob 时缺少环境变量
- java - 迁移 Feign Load Balancer 实现以兼容 Spring cloud 2020.0.0
- python - return self.func(*args) TypeError: serchongoogle() missing 1 required positional argument: 'choice'
- flutter - ImagePicker 插件可以免费使用吗?
- r - R中权重的广义基尼
- angular - 预输入选项不显示
- cors - 在 PDP API 响应 WSO2IS 5.10.0 的“access-control-allow-origin”标头中接收多个值
- flutter - 是否有可能将 Row 的第二个元素与屏幕中心对齐
- javascript - 使用 Javascript 更改背景颜色和内部文本