我已经解决了排序一个数组的问题,这个数组应该按照以下两个要求排序:
-
具有上必需的属性
true
应该先列出。
-
然后按字母顺序
我已经做到了,而且很有效,但是我觉得有一个聪明的方法…- -
const originalAttributes = [{
name: "P",
required: false
},
{
name: "D",
required: true
},
{
name: "W",
required: true
},
{
name: "A",
required: true
},
{
name: "N",
required: false
},
{
name: "S",
required: false
}
];
function listNames(originalAttributes) {
originalAttributes.forEach(item => {
console.log(`${item.name} ${item.required ? '--R' : ''}`);
})
}
listNames(originalAttributes)
console.log('------------------------------');
const sortedAttributes = originalAttributes.sort((a, b) => {
if (a.required && b.required) {
return a.name < b.name ? -1 : 1;
} else if (a.required) {
return -1
} else if (!b.required) {
return a.name < b.name ? -1 : 1;
}
});
listNames(sortedAttributes)
有什么建议吗?