根据JavaScript中的另一个数组对数组进行排序
假设我们有两个像这样的文字数组-
const arr1 = [1, 3, 2, 4, 5, 6]; const arr2 = [1, 2, 5];
我们需要编写一个包含两个这样的数组的JavaScript函数。然后,我们的函数应该返回一个新数组,该数组包含arr1的所有元素,但根据arr2进行排序。
就像出现在两个数组中的元素一样,应该首先按照它们在第二个数组中的顺序出现,然后是仅出现在第一个数组中的元素保持它们的顺序。
示例
为此的代码将是-
const arr1 = [1, 3, 2, 4, 5, 6];
const arr2 = [1, 2, 5];
const sortByReference = (arr1, arr2) => {
const inBoth = el => arr1.indexOf(el) !== -1 && arr2.indexOf(el) !== -1;
const sorter = (a, b) => {
if(inBoth(a) && inBoth(b)){
return arr1.indexOf(a) - arr2.indexOf(b);
}
if(inBoth(a)){
return -1;
};
if(inBoth(b)){
return 1;
};
return 0;
};
arr1.sort(sorter);
};
sortByReference(arr1, arr2);
console.log(arr1);输出结果
控制台中的输出-
[ 1, 2, 5, 3, 4, 6 ]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短