Теперь у меня есть такой код:
sortArticles = (someArray) => {
const result = [];
let isValid = someArray.filter(item => item.isValid);
let isInvalid = someArray.filter(item => !item.isValid);
valid = funcSortArrayOfObjByKey(arrayChecked, 'article');
invalid = funcSortArrayOfObjByKey(arrayUnchecked, 'article');
// funcSortArrayOfObjByKey - is a function to sort, a kind of lodash implementation without unnecessary dependency
return result.concat(valid).concat(invalid);
}
и я хочу отсортировать такой массив:
[
{
article: 'Some New Zarticle',
isValid: false
},
{
article: 'Some New Article',
isValid: false
},
{
article: 'Some New Zzarticle',
isValid: true
},
]
, в результате я хочу видеть такой массив:
[
{
article: 'Some New Zzarticle',
isValid: true
},
{
article: 'Some New Article',
isValid: false
},
{
article: 'Some New Zarticle',
isValid: false
},
]
Итак: мне нужно иметь два вида массивов: первый и второй (один с «isValid», другой без), и оба они должны быть отсортированы по «статье».Можно ли это как-то сделать?Я пробовал также так:
someArray.sort((a, b) => {
if (a.isValid === b.isValid) {
return b.isValid - a.isValid;
} else {
return a.article.toLowerCase().localeCompare(b.article.toLowerCase());
}
})
но он не работает так, как я хочу ...