使用lodash _.sortby对包含详细信息的联系人数组进行排序并最后发送空值吗?

时间:2018-08-01 18:21:56

标签: javascript sorting lodash

我有一系列的联系人,包括电子邮件,电话号码等详细信息。这些联系人均按姓名排序。但是,尽管每个联系人都必须具有这些详细信息,但并非总是为其分配名称。我可以添加一个简单的参数,以将名称为空的这些联系人发送到列表的末尾吗?我现在有什么。

array=_.sortBy(array,'Name');
return array;

2 个答案:

答案 0 :(得分:1)

您可以在迭代器中使用函数将伪造的值排序到底部。

var users = [{ name: null }, { name: 'susan' }, { name: 'barney' }, { name: 'fred' }, { name: 'jane' }, { name: null }];

console.log(_.sortBy(users, [({ name }) => name === null, 'name']));
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>

答案 1 :(得分:0)

我认为lodash没有办法,但是使用普通js很简单

let arr = [{
  name: null
}, {
  name: 'foo'
}, {
  name: 'bar'
}, {
  name: null
}];
arr.sort((a, b) => a.name === null ? Number.MAX_SAFE_INTEGER : a.name.localeCompare(b.name));
console.log(arr);