如何在javascript中组合2个数组进行排序(如c#(array.sort()))

如何在javascript中组合2个数组进行排序(如c#(array.sort())),javascript,c#,arrays,linq,sorting,Javascript,C#,Arrays,Linq,Sorting,我有两个数组。第一个数组中的名称和第二个数组中的索引。我使用C#(Array.sort()属性)进行排序 示例:我的数组名为OrderedNames var names = OrderedName.SelectMany(x => x.Names) // names array var indexes = OrderedName.SelectMany(x => x.Indexes) // indexes array Array.sort(indexes,names)

我有两个数组。第一个数组中的名称和第二个数组中的索引。我使用C#(Array.sort()属性)进行排序

示例:我的数组名为OrderedNames

var names = OrderedName.SelectMany(x => x.Names)      // names array
var indexes = OrderedName.SelectMany(x => x.Indexes) // indexes array
Array.sort(indexes,names)                           // ordered names with indexes
我和林克一起做的

我想用JavaScript做同样的事情

因此,我的Javascript代码如下所示(例如):

我可以选择名称和索引。我想合并两个数组并进行排序。 我使用C#Array.sort()实现了这一点,但没有使用Javascript


您有什么想法吗?

您可以将名称和键组合在一起,对它们进行排序,然后像这样返回排序后的名称

var names = ['two', 'three', 'one', 'four'];
var keys = [2, 3, 1, 4];

var sortedNames = names
                    .map((n, i) => { return { name: n, key: keys[i] }})
                    .sort((a, b) => a.key - b.key)
                    .map(n => n.name);

console.log(sortedNames); // ['one', 'two', 'three', 'four']';

有趣的问题。我认为没有
map.sort.map
你也可以这样做

var name=['rhino'、'hippo'、'tiger'、'獾'、'鳄鱼'],
键=[4,5,3,1,2],
clone=names.slice(),
排序=名称.sort((a,b)=>keys[clone.indexOf(a)]-keys[clone.indexOf(b)];

控制台日志(已排序)我现在可以告诉你,你的
JS
代码将无法编译。你不能像那样直接从
JS
使用
.NET
功能(
LINQ
)。我想问,如何使用JavaScript执行相同的过程?我知道,我不能直接从JS使用.Net功能@ext0Check
var names = ['two', 'three', 'one', 'four'];
var keys = [2, 3, 1, 4];

var sortedNames = names
                    .map((n, i) => { return { name: n, key: keys[i] }})
                    .sort((a, b) => a.key - b.key)
                    .map(n => n.name);

console.log(sortedNames); // ['one', 'two', 'three', 'four']';