如何在javascript中组合2个数组进行排序(如c#(array.sort()))
我有两个数组。第一个数组中的名称和第二个数组中的索引。我使用C#(Array.sort()属性)进行排序 示例:我的数组名为OrderedNames如何在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)
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']';