首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:按外部映射(或外部K.V对)对对象数组进行排序

Javascript:按外部映射(或外部K.V对)对对象数组进行排序
EN

Stack Overflow用户
提问于 2022-11-15 22:13:40
回答 1查看 33关注 0票数 -2

这里的JavaScript用户非常新手。这类问题似乎很常见,我保证我会四处看看一段时间,尽管我可能遗漏了一些东西。

我试图在单独的数据结构(映射或对象为k,v对)中按值对对象数组进行排序。

要排序的数据(这是Object.fromEntries(d3.rollup( ... ))获得"foo“、"bar”等的出现计数的结果):

代码语言:javascript
复制
dataSortBy = {bar:2, foo:3}

或者,要排序的值也可以在map中进行排序,以确定是否更合适(d3.rollup( ... )的结果):

代码语言:javascript
复制
dataSortByMap =  {foo => 3, bar => 2}

待分类的数据:

代码语言:javascript
复制
dataRaw = 
[
{name:"foo", relation:"baz"}
{name:"foo", relation:"buz"}
{name:"bar", relation:"baz"}
{name:"bar", relation:"buz"}
{name:"foo", relation:"biz"}
]

寻找结果:

代码语言:javascript
复制
dataSorted = 
[
{name:"foo", relation:"baz"}
{name:"foo", relation:"buz"}
{name:"foo", relation:"biz"}
{name:"bar", relation:"baz"}
{name:"bar", relation:"buz"}
]

到目前为止,我的方法是遵循https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#sorting_with_map

谢谢你的帮助。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-15 22:31:59

只需在sortBy回调函数中使用.sort()数组:

代码语言:javascript
复制
const dataRaw = 
[
{name:"foo", relation:"baz"},
{name:"foo", relation:"buz"},
{name:"bar", relation:"baz"},
{name:"bar", relation:"buz"},
{name:"foo", relation:"biz"}
], sortBy= {foo:3,bar:2};

console.log(dataRaw.sort((a,b)=>
 sortBy[a.name]-sortBy[b.name]))

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

https://stackoverflow.com/questions/74452791

复制
相关文章

相似问题

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