按数组属性的长度对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,很高兴帮助巴迪,如果我的回答对你有帮助,请接受!