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