gpt4 book ai didi

javascript - 自然排序数组数组

转载 作者:行者123 更新时间:2023-11-30 14:37:43 25 4
gpt4 key购买 nike

我需要对给我的数组进行排序。该数组看起来像这样。

var provided_array = [
inner_array_one = ['1', '10', '11', 'Alpha', '2A'],
inner_array_two = ['Hotdogs', 'Pies', 'Burgers', 'Kebabs', 'Tacos']
];

我尽可能地简化了这个示例。实际上,通常有十几个这样的内部阵列。

inner_array_one 中的数据通过索引与inner_array_two 中的数据相关联。IE。 “2A”与“炸 Jade 米饼”有关。

排序需要“自然”,即 2 在 10 之前。我需要的总体预期输出是

provided_array[
inner_array_one['1', '2A', '10', '11', 'Alpha'],
inner_array_two['Hotdogs', 'Tacos', 'Pies', 'Burgers', 'Kebabs']
];

我已经尝试使用 javascript 排序函数,但它似乎只能对 inner_arrays 的顺序进行排序,而不能对这些数组的内容进行排序。

我想要的是可以实现的吗?

最佳答案

您可以为索引获取一个辅助数组,并对第一个内部数组进行自然排序,并将所有数组映射到索引数组。

var arrays = [
['1', '10', '11', 'Alpha', '2A'],
['Hotdogs', 'Pies', 'Burgers', 'Kebabs', 'Tacos']
],
indices = Object.keys(arrays[0]);

indices.sort((a, b) => arrays[0][a].localeCompare(arrays[0][b], undefined, { numeric: true, sensitivity: 'base' }));

console.log(arrays.map(a => indices.map(i => a[i])));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 自然排序数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50158566/

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