gpt4 book ai didi

javascript - 用另一个数组对一个对象数组进行排序

转载 作者:行者123 更新时间:2023-12-01 00:23:51 25 4
gpt4 key购买 nike

我有一个像这样的对象数组,并且想与另一个对象数组重新排序。我尝试过使用 indexOf 但可能会混淆我的语法,因为数组无法重新排序。我读过类似的主题,但无法将这些解决方案应用于我的问题。这是代码:

    const task = [
{'title':1.1 , 'description': 'task description here' },
{'title':1.2 , 'description': 'task description here' },
{'title':1.3 , 'description': 'task description here' },
{'title':1.4 , 'description': 'task description here' }
];

var taskSort = [
{'title':1.2 },
{'title':1.4 },
{'title':1.3 },
{'title':1.1 }
];

task.sort(function(a, b) {
return taskSort.indexOf(a.title) - taskSort.indexOf(b.title); \\have tried many variations of this line
});
console.clear();
console.log(task);

非常感谢!

最佳答案

基本上,您不是对值进行排序,而是根据另一个数组中指定的顺序重新排列它们

因此,您不能使用Array.prototype.sort逻辑,但可以执行以下操作

var taskSort = [
{'title':1.2 },
{'title':1.4 },
{'title':1.3 },
{'title':1.1 }
];
var task = [
{'title':1.1 , 'description': 'task description here' },
{'title':1.2 , 'description': 'task description here' },
{'title':1.3 , 'description': 'task description here' },
{'title':1.4 , 'description': 'task description here' }
];
var sortedTask = taskSort.map(tS => task.find(t => t.title === tS.title))

console.log(sortedTask);

本质上,您正在通过taskSort数组进行映射并创建一个新数组,其中的值满足taskSort数组中的值标记的条件

关于javascript - 用另一个数组对一个对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59178398/

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