【发布时间】:2022-11-15 06:31:11
【问题描述】:
我有这样一组卡片对象:
const cards = [
{
type: { method: 'listen' },
reference: ['destroyed', 'word 2']
},
{
type: { method: 'synonym' },
reference: ['destroyed']
},
{
type: { method: 'listen' },
reference: ['destroyed']
},
{
type: { method: 'dictate' },
reference: ['destroyed']
}
]
我想按如下方式对它们进行排序:
-
listen卡片应该放在第一位 - 在收听卡之间有较少的
reference.length应该早点来 - 其他卡片应该会出现
-
dictate卡片终于来了除了第一个条件,我不知道如何进行如此复杂的排序:
cards.sort(compare); function compare(a, b) { if(a.type.method == 'listen') return a.reference.length - b.reference.length; ... }
【问题讨论】:
-
“然后应该有其他卡片出现” - 意思是他们的顺序没有改变?
-
对,就是这样........
标签: javascript