gpt4 book ai didi

javascript - 如何将一个数组排序为与另一个数组相同?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:48 25 4
gpt4 key购买 nike

我的问题:我有一个对象数组,我按其中一个对象键对 ASC DESC 进行排序,之后我需要对一个字符串数组进行排序,该字符串数组将按照对象数组的排序方式进行排序。示例:

arrayOfObjects = [{name:"john",nuber:6,food:"pizza"},
{name:"david",nuber:2,food:"gulash"},
{name:"margaret",nuber:7,food:"gugi barries"}]

arrayOfStrings = ['r1','r2','r3']

因此 arrayOfObjects 中的每个对象都有自己的字符串。所以说,john 有 r1,并且它们都是第一个索引,当我按数字排序时,john 排在第二位,我希望他的号码也排在第二位(以及 david 和 margaret 号码)

我需要以相同的方式重新排列 arrayOfStrings(我不在乎它是按什么排序的)arrayOfObjects 已排序

我的排序函数:

dataArray.sort(dynamicSort(sortBy)); 
function dynamicSort(property) {
var sortOrder = 1;
if(property[0] === "-") {
sortOrder = -1;
property = property.substr(1);
}
return function (a,b) {
if(direction=='asc'){
var c = b;
b=a;
a=c;
}
var result = ( b[property] < a[property]) ? -1 : ( b[property]> a[property]) ? 1 : 0;
return result * sortOrder;
}
}

最佳答案

我建议您以 [[object, string], ...] 格式压缩列表,然后根据元组的第一个元素排序。之后您可以解压缩列表。

关于javascript - 如何将一个数组排序为与另一个数组相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31513448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com