我有以下数据结构:
const fieldOrder = [
'title',
'first_name',
'last_name',
'address_1',
'address_2',
'city',
'state',
'zipcode',
'country',
]
const fields = [
{
name: 'first_name',
value: 'John'
},
{
name: 'title',
value: 'Mr'
}
...etc
]
我想根据 name
键在 fieldOrder
数组中的位置对 fields
对象数组进行重新排序。这怎么可能?也许可以使用 Array.sort 方法?
一般来说,这是表示顺序的最佳方式吗?
最佳答案
您可以从字段顺序数组创建对象,然后使用 sort
方法根据该对象中的值进行排序,该对象将成为顺序数组中当前元素的索引。
const fieldOrder = [
'title',
'first_name',
'last_name',
'address_1',
'address_2',
'city',
'state',
'zipcode',
'country',
].reduce((r, e, i) => {
r[e] = i;
return r
}, {})
const fields = [{
name: 'first_name',
value: 'John'
},
{
name: 'title',
value: 'Mr'
}
].sort((a, b) => fieldOrder[a.name] - fieldOrder[b.name])
console.log(fields)
关于javascript - 根据字符串数组重新排序对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60303135/