我有一个有序数组,另一个数组内有4个数组。我想根据已排序的数组来排序每个数组。
(这只是一个例子,我需要一个可以与数组内任何类型的元素一起工作的代码)。
let ordered_array = ['a','b','c','d','e','f','g','h','i','j','k','l'];
let array = [['d','c','a'],['i','k','b'],['f','e','h'],['l','g','j']];
//order each array in 'array'
for(let i = 0; i < array.length; i++){
for(let l = 0; l < array[i].length; l++){
document.write(array[i][l]);
}
document.write('</br>');
}
/*
expected output (after order):
acd
bik
efh
gjl
*/
答案 0 :(得分:0)
您可以输入Map
并按索引排序。
var ordered_array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'],
array = [['d', 'c', 'a'], ['i', 'k', 'b'], ['f', 'e', 'h'], ['l', 'g', 'j']],
order = ordered_array.reduce((m, v, i) => m.set(v, i), new Map);
array.forEach(t => t.sort((a, b) => order.get(a) - order.get(b)));
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }