有一个名称为语言列表的对象数组和一个从这个列表中选择语言的数组 selectedLanguagesId
const list = [
{
id: 2,
name: 'Dutch'
},
{
id: 3:
name: 'English'
},
{
id: 1:
name: 'Italian'
},
...
];
let selectedLanguagesId = [3, 2, ...];
const defaultLanguageId = 3;
需要默认语言总是在前面,其余按名称排序。我的脚本的问题是它不能正常工作——它没有把默认语言放在前面。我将不胜感激
getSelectedLanguages() {
return this.selectedLanguagesId
.map((id) => this.list.find((lang) => lang.id == id))
.sort((a, b) => {
if (a.id == this.defaultLanguageId || b.id == this.defaultLanguageId) return 0;
if (a.name > b.name) return 1;
if (a.name < b.name) return -1;
return 0;
});
},
if (a.id == this.defaultLanguageId || b.id == this.defaultLanguageId) return 0;return 0意思是“不要改变这对元素的位置”。你只需要向上推所需的对象:也许你想要这样的东西?按默认数组过滤和排序。
在示例中,添加了俄语,但它不包含在所选语言列表中。