在Javascript中对对象元素进行排序

在Javascript中对对象元素进行排序,javascript,json,sorting,Javascript,Json,Sorting,我有一个这样的物体: { "name":['John','Bob','Ram','Shyam'], "marks":['64','22','80','32'] } 我得把名字分类。在我对名称进行排序之后,必须根据名称匹配标记 当我使用sort()函数时,它只对名称进行排序。如何对整个对象进行排序?一个选项是更改数据结构,使其更易于排序。例如: const数据={ 姓名:['John'、'Bob'、'Ram'、'Shyam'], 标记:['64','22','80','32'] }

我有一个这样的物体:

 {
  "name":['John','Bob','Ram','Shyam'],
  "marks":['64','22','80','32']
 }
我得把名字分类。在我对名称进行排序之后,必须根据名称匹配标记


当我使用sort()函数时,它只对名称进行排序。如何对整个对象进行排序?

一个选项是更改数据结构,使其更易于排序。例如:

const数据={
姓名:['John'、'Bob'、'Ram'、'Shyam'],
标记:['64','22','80','32']
}
const people=data.names.map((name,i)=>({
名称
标记:数据标记[i]
}))
const sorted=people.sort((a,b)=>a.name.localeCompare(b.name))

console.log(排序)
您可以按名称创建另一个键
rel
,其值将是一个对象数组,其中每个对象都有按名称
名称
&
标记
的键

创建此数组时,可以使用
sort
函数按顺序对这些对象进行排序

让obj={
“姓名”:['John'、'Bob'、'Ram'、'Shyam'],
“标记”:['64'、'22'、'80'、'32']
}
obj.rel=obj.name.map(函数(e,i){
返回{
姓名:e,,
标记:对象标记[i]
}
}).sort((a,b)=>a.name.localeCompare(b.name))
console.log(obj)