如何基于JS

问题描述

我有一个对象数组:

[
{
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);