0
,我有以下数据:排序阵列
phones: {
'home': {
number: '1234567890',
primary: false,
preferred: false
},
'mobile': {
number: '2134567890',
primary: true,
preferred: true
},
'work': {
number: '1234567809',
primary: false,
preferred: true
}
}
我传送到一个阵营组成:
render: function() {
return (
<MyComponent data={
Object.keys(phones)
.reduce((prev, key) => [...prev, phones[key]], []) // omitting keys
.sort(this.sortPhoneNumbers)
}
/>
)
}
这是我的自定义排序功能:
sortPhoneNumbers: function (a, b) {
if (a.preferred === b.preferred) {
return (b.primary - a.primary)
} else if (a.preferred < b.preferred) {
return 1
} else if (a.preferred > b.preferred) {
return -1
} else {
return 0
}
}
我想用Lodash sortBy function来代替。
这样做的输出不会是相当正确的得到的结果。我需要“首选”电话先显示在列表中。如果它是一个“初级”,那么它应该永远是第一位的。现在的方式是,既不是上面展示的手机,也不是之后来的首选手机。 – abpetkov