将特定元素推送到JavaScript中
假设我们有一个这样的对象数组-
const arr = [
{flag: true, other: 1},
{flag: true, other: 2},
{flag: false, other: 3},
{flag: true, other: 4},
{flag: true, other: 5},
{flag: true, other: 6},
{flag: false, other: 7}
];我们需要编写一个JavaScript函数,该函数接受一个这样的数组并根据以下条件对其进行排序-
如果arr.flag===false,则匹配元素将首先放置在数组中,但仅放在先前的匹配元素之后。
不匹配的元素将保持原始顺序。
出现顺序很重要。
因此,对于上述数组,输出应为-
const output = [
{flag: false, other: 3},
{flag: false, other: 7},
{flag: true, other: 1},
{flag: true, other: 2},
{flag: true, other: 4},
{flag: true, other: 5},
{flag: true, other: 6}
];因此,让我们为该函数编写代码-
示例
为此的代码将是-
const arr = [
{flag: true, other: 1},
{flag: true, other: 2},
{flag: false, other: 3},
{flag: true, other: 4},
{flag: true, other: 5},
{flag: true, other: 6},
{flag: false, other: 7}
];
const sortByFlag = arr => {
const sorter = (a, b) => {
if(!a['flag'] && b['flag']){
return -1;
};
if(a['flag'] && !b['flag']){
return 1;
}
return a['other'] - b['other'];
}
arr.sort(sorter);
};
sortByFlag(arr);
console.log(arr);输出结果
控制台中的输出将为-
[
{ flag: false, other: 3 },
{ flag: false, other: 7 },
{ flag: true, other: 1 },
{ flag: true, other: 2 },
{ flag: true, other: 4 },
{ flag: true, other: 5 },
{ flag: true, other: 6 }
]热门推荐
2 年月日祝福语简短
10 对疫情的简短祝福语
11 婚庆花篮祝福语简短大气
12 求简短的职场祝福语
13 祝女性生日祝福语简短
14 给长辈祝福语简短大全
15 三八简短祝福语给婆婆
16 中秋妈妈生日祝福语简短
17 理科元旦祝福语大全简短
18 新疆新年祝福语大全简短