小编Kai*_*Hao的帖子

使用过滤器和排序将元素放在数组的开头 - javascript

我有一个对象数组,我想在其中找到某些元素并将它们放在开头或数组中。我开始使用 find 函数来做它并且它起作用了,但是现在因为可以有多个元素我切换到过滤器函数但是,现在它停止工作了,我该如何解决这个问题?

输入示例:

colors= [
   {name: "green", popular: true},
   {name: "yellow", popular: false},
   {name: "red", popular: true},
   {name: "black", popular: true},
   {name: "red", popular: true}
]
Run Code Online (Sandbox Code Playgroud)

功能:

sort(colors) {
    let red= colors.filter(color=> colors.name === "red")

    if(red){
        colors.sort(function(x,y){ return x == red? -1 : y == red? 1 : 0; });
    }

    return colors
}
Run Code Online (Sandbox Code Playgroud)

预期输出:

colors= [
   {name: "red", popular: true},
   {name: "red", popular: true},
   {name: "green", popular: true},
   {name: "yellow", popular: false},
   {name: "black", popular: true}
]
Run Code Online (Sandbox Code Playgroud)

通过使用过滤器 …

javascript sorting filter

4
推荐指数
1
解决办法
55
查看次数

标签 统计

filter ×1

javascript ×1

sorting ×1