我有2个数组。第一个数组中的名称和第二个数组中的索引。我订购了C#(Array.sort()属性)。
示例:我的数组名称是OrderedNames。
self[identifier]
我用LINQ做了这个C#。
我想用JavaScript做同样的事情。
所以我的Javascript代码如下(例如):
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
我可以选择名称和索引。我想合并两个数组并排序。 我用C#Array.sort()做了这个,但我没有使用Javascript。
你有什么想法吗?
答案 0 :(得分:1)
您可以将名称和键组合在一起,对它们进行排序,然后像这样返回已排序的名称
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']';
答案 1 :(得分:0)
有趣的问题。我认为没有map.sort.map
你也可以这样做..
var names = ['rhino', 'hippo', 'tiger', 'badger', 'crocodile'],
keys = [4, 5, 3, 1, 2],
clone = names.slice(),
sorted = names.sort((a,b) => keys[clone.indexOf(a)]-keys[clone.indexOf(b)]);
console.log(sorted);