首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lodash sortby第一个条件,然后检查其他条件

问Lodash sortby第一个条件,然后检查其他条件
EN

Stack Overflow用户
提问于 2022-01-13 22:52:27
回答 2查看 674关注 0票数 0

我在函数中使用按值进行排序。目前它正在按价值进行排序。不过,我想补充另一个条件。我想让它先根据这个条件进行排序(这意味着一个字段将等于某物),然后它将按值进行排序。

换句话说,有一个项目的名字是“萨利”。这个项目应该是第一个,然后其余的项目按值进行排序。

我已经做了很多研究,但在网上找不到任何东西。不知道有没有人遇到过这个问题。请看我的密码:

代码语言:javascript
复制
const sortByNameThenValue = () => {
  let result;
  
  result = sortBy(name, 'Sally') && sortBy(allowance, 'value').reverse();
}

我也在考虑把它拴起来,但似乎也不起作用。如果你看到什么请告诉我。谢谢,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-13 23:22:48

你可以在房车里这样做:

代码语言:javascript
复制
const sorted = _.sortBy(
  people, 
  [(person) => person.name !== 'Sally', (person) => person.value]
);

sortBy接受一个元素数组和一个函数数组,以及"排序“

这里还有一个演示的沙盒

按相反顺序排序:

代码语言:javascript
复制
const sorted = _.sortBy(people, [
  (person) => person.name === "Sally",
  (person) => person.value
]).reverse();
票数 1
EN

Stack Overflow用户

发布于 2022-01-13 23:18:29

你没有提供任何样本数据,所以我只是编了些东西。没有必要包括低破折号库,因为排序已经在Vanilla-JS中可用。

​

代码语言:javascript
复制
const arr=[{name:"Fred",value:138},{name:"Harry",value:5},{name:"Sally",value:34},{name:"Andy",value:257},{name:"Sue",value:142},{name:"Peggy",value:33},{name:"Frank",value:85}];

function val(o){
 return o.value+(o.name==="Sally"?1e50:0)
}

console.log(arr.sort((a,b)=>
  val(b)-val(a)));

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70704085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档