按数组属性的长度对JavaScript对象排序

按数组属性的长度对JavaScript对象排序,javascript,arrays,sorting,javascript-objects,Javascript,Arrays,Sorting,Javascript Objects,我有一个这样的物体: var list = { "you": [100,200,300], "me": [75,4,5,6,8,9], "foo": [116,345,1,23,56,78], "bar": [15,34] }; 有没有办法根据数组属性的长度对该对象进行排序 预期产出: var res = [[116,345,1,23,56,78],[75,4,5,6,8,9],[100,200,300],[15,34]] 我尝试使用lodash的排序功能 var数

我有一个这样的物体:

var list = {
  "you": [100,200,300], 
  "me": [75,4,5,6,8,9], 
  "foo": [116,345,1,23,56,78], 
  "bar": [15,34]
};
有没有办法根据数组属性的长度对该对象进行排序

预期产出:

var res =  [[116,345,1,23,56,78],[75,4,5,6,8,9],[100,200,300],[15,34]]
我尝试使用lodash的
排序功能

var数据={
“abc”:[“20288”、“d8f0”、“4a5d”、“1a8a0”],
“kkl”:[“bnb”、“lll”、“zxc”],
“F17”:[“ee547”、“42e9”],
“cnv”:[“20288”、“d8f0”、“4a5d”、“1a8a0”、“jh67”]
}
var res=uu.sortBy(数据,函数(val)){
返回parseInt(val.length);
});
控制台日志(res)
您可以使用获取数组中的值,然后根据
长度得到2D数组,如下所示:

var list = {
  "you": [100,200,300], 
  "me": [75,4,5,6,8,9], 
  "foo": [116,345,1,23,56,78], 
  "bar": [15,34]
};
var数据={
“abc”:[“20288”、“d8f0”、“4a5d”、“1a8a0”],
“kkl”:[“bnb”、“lll”、“zxc”],
“F17”:[“ee547”、“42e9”],
“cnv”:[“20288”、“d8f0”、“4a5d”、“1a8a0”、“jh67”]
}
const res=Object.values(data.sort)((a,b)=>b.length-a.length)
console.log(res)
  • 如果希望输出为排序数组值的数组:

    使用通过调用
    Object.values
    从结果数组中获取
    length
    属性,然后按降序对其排序

  • const数据={
    “abc”:[“20288”、“d8f0”、“4a5d”、“1a8a0”],
    “kkl”:[“bnb”、“lll”、“zxc”],
    “F17”:[“ee547”、“42e9”],
    “cnv”:[“20288”、“d8f0”、“4a5d”、“1a8a0”、“jh67”]
    };
    const res=Object.values(data.sort)({length:a},{length:b})=>b-a);
    
    控制台日志(res)我已经从你的小提琴中创建了一个片段。请阅读:@Eswar,很高兴帮助巴迪,如果我的回答对你有帮助,请接受!