问题描述
[
{
Name:
likes:[]
...
}
]
我需要对没有喜欢的未定义对象的第一个对象进行排序,然后在likes数组中只有1个项目的对象然后在likes数组中有更多项目的其他对象。如何正确完成?
解决方法
function sortBy(selector) {
const cmp = (a,b) => (selector(a) - selector(b));
return list => list.sort(cmp);
}
const data = [{ Name: "Foo",likes:[{},{},{}] },{ Name: "Bar",likes:[{}] },{ Name: "Baz",{ Name: "Plugh",likes:[] }];
const sortByLikes = sortBy(({ likes }) => likes.length);
console.log(sortByLikes(data));
,
var temp = [
{
Name: "abc",likes: [1,2,3]
},{
Name: "ac",likes:[1]
},{
Name: "bc",likes:null
},{
Name: "c",likes:[1,3,4]
}
];
temp = temp.sort((a,b) => {
if(a.likes === undefined || a.likes === null)
return -1;
else if(b.likes === undefined || b.likes === null)
return 1;
else{
return a.likes.length - b.likes.length;
}
});
console.log(temp);