我有2个这样的数组:
array1 = ["green", "blue", "red"];
array2 = ["green", "green", "red", "red", "green", "green", "blue", "red", "Blue"];
但是我需要像这样的输出
output_array = ["green", "green", "green", "green", "blue", "Blue", "red", "red", "red"];
答案 0 :(得分:0)
您可以将sort
与indexOf
一起使用:
const arr1 = ["green", "blue", "red"]
const arr2 = ["green", "green", "red", "red", "green", "green", "blue", "red", "blue"]
console.log(arr2.sort((a, b) => arr1.indexOf(a) - arr1.indexOf(b)))
答案 1 :(得分:0)
希望这对您有帮助!
array1=["green","red","blue"];
array2=["green","green","red","red","green","green","blue","red","Blue"];
const map = array2.reduce((acc, e) => acc.set(e, (acc.get(e) || 0) + 1), new Map());
let result = array1.reduce((acc, a)=> [...acc, ...Array(map.get(a)).fill(a)] , []);
console.log(result);
答案 2 :(得分:-1)
我不知道您是否按字母顺序排列,但是您可以合并两个数组,然后对结果进行排序:
let output_array = array1.concat(array2);
output_array.sort()