这里的JavaScript用户非常新手。这类问题似乎很常见,我保证我会四处看看一段时间,尽管我可能遗漏了一些东西。
我试图在单独的数据结构(映射或对象为k,v对)中按值对对象数组进行排序。
要排序的数据(这是Object.fromEntries(d3.rollup( ... ))获得"foo“、"bar”等的出现计数的结果):
dataSortBy = {bar:2, foo:3}或者,要排序的值也可以在map中进行排序,以确定是否更合适(d3.rollup( ... )的结果):
dataSortByMap = {foo => 3, bar => 2}待分类的数据:
dataRaw =
[
{name:"foo", relation:"baz"}
{name:"foo", relation:"buz"}
{name:"bar", relation:"baz"}
{name:"bar", relation:"buz"}
{name:"foo", relation:"biz"}
]寻找结果:
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
谢谢你的帮助。:)
发布于 2022-11-15 22:31:59
只需在sortBy回调函数中使用.sort()数组:
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]))
https://stackoverflow.com/questions/74452791
复制相似问题