gpt4 book ai didi

javascript - 按特定顺序对 JavaScript 对象数组进行排序(使用现有函数)

转载 作者:行者123 更新时间:2023-12-03 21:36:26 27 4
gpt4 key购买 nike

给定一个对象数组:

{    key: "a",    value: 42},{    key: "d",    value: 28},{    key: "c",    value: 92},{    key: "b",    value: 87}

and an array of keys:

["c", "a", "b", "d"]

是否有 ECMAScript 函数或第 3 方 JavaScript 库可以让您对第一个对象数组进行排序 - 在一行/函数调用中,以匹配键的顺序 在第二个数组中指定,结果为:

{    key: "c",    value: 92},{    key: "a",    value: 42},{    key: "b",    value: 87},{    key: "d",    value: 28}

提供函数或算法的其他问题:

类似/相关问题:

最佳答案

只需使用 indexOf 将 key 转换为正确的顺序:

var order = ["c", "a", "b", "d"];
_.sortBy(arr, function(obj){
return _.indexOf(order, obj.key);
});

Fiddle

如果有很多键,那么从数组中创建一个 HashMap 是有利的,例如:

var order = ["c", "a", "b", "d"];
var orderMap = {};
_.each(order, function(i) { orderMap[i] = _.indexOf(order, i); });

这使得键排序查找时间变得恒定,而不是 O(n)。 (Fiddle)

关于javascript - 按特定顺序对 JavaScript 对象数组进行排序(使用现有函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18859186/

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