Luk*_*101 3 javascript underscore.js
我使用下划线来排序数组.有没有办法使空值总是持续上升或下降?例如:
[
{ name: 'a', age: 1 },
{ name: 'z', age: 5 },
{ name: '', age: 1 },
{ name: 'v', age: 7 }
]
Run Code Online (Sandbox Code Playgroud)
会生产
[
{ name: 'a', age: 1 },
{ name: 'v', age: 7 },
{ name: 'z', age: 5 },
{ name: '', age: 1 }
]
Run Code Online (Sandbox Code Playgroud)
和降序将产生:
[
{ name: 'z', age: 5 },
{ name: 'v', age: 7 },
{ name: 'a', age: 1 },
{ name: '', age: 1 }
]
Run Code Online (Sandbox Code Playgroud)
我真正的数组是一个对象数组,所以我必须把值拿出来.
有很多方法可以解决它,但你可以尝试这样的事情:
var arr = [{name: 'a', age: 1}, {name: 'z', age: 5}, {name: '', age: 1}, {name: 'v', age: 7 }];
_.chain(arr)
.sortBy('name')
//.reverse() // to sort descending
.partition('name')
.flatten()
.value();
Run Code Online (Sandbox Code Playgroud)
结果:
[ { name: 'a', age: 1 },
{ name: 'v', age: 7 },
{ name: 'z', age: 5 },
{ name: '', age: 1 } ]
Run Code Online (Sandbox Code Playgroud)