根据第一个数组重新排列arraay

时间:2019-10-25 10:10:52

标签: javascript arrays

我有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"];

3 个答案:

答案 0 :(得分:0)

您可以将sortindexOf一起使用:

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()