Я хочу отсортировать массив объектов в JavaScript с двумя свойствами: логическим значением и значением Int. Я хочу, чтобы вывод был таким:
{
first_name: 'sumeet',
last_name: 'Prentice',
offerApplicable: 'TRUE',
price: 40
}, {
first_name: 'Pirate',
last_name: 'Prentice',
offerApplicable: 'TRUE',
price: 50
}, {
first_name: 'Lazslo',
last_name: 'Jamf',
offerApplicable: 'TRUE',
price: 60
}, {
first_name: 'jitendra',
last_name: 'Prentice',
offerApplicable: 'TRUE',
price: 101
}
Все объекты с истинными значениями сначала также сортируются по цене, а затем все объекты, имеющие логическое значение как ложные. я могу отсортировать их по логическому значению, но я также хочу отсортировать их по цене.
я пробовал это
var objs = [
{ first_name: 'Lazslo', last_name: 'Jamf' ,offerApplicable: 'TRUE' ,price: 60 },
{ first_name: 'Pig', last_name: 'Bodine' , offerApplicable: 'FALSE' ,price: 100},
{ first_name: 'Pirate', last_name: 'Prentice' ,offerApplicable: 'TRUE' ,price: 50},
{ first_name: 'nithesh', last_name: 'Bodine' , offerApplicable: 'FALSE' ,price: 40},
{ first_name: 'sumeet', last_name: 'Prentice' ,offerApplicable: 'TRUE' ,price: 40},
{ first_name: 'mahesh', last_name: 'Bodine' , offerApplicable: 'FALSE' ,price: 40},
{ first_name: 'jitendra', last_name: 'Prentice' ,offerApplicable: 'TRUE' ,price: 101}
];
function compare(a,b) {
var aConcat = a["offerApplicable"] + a["price"];
var bConcat = b["offerApplicable"] + b["price"];
if (aConcat < bConcat )
return 1;
if (aConcat > bConcat )
return -1;
return 0;
}
console.log(objs.sort(compare));
я получаю вывод, как это
first_name : "Lazslo" last_name : "Jamf" offerApplicable: "ИСТИННАЯ" цена: 60
:first_name : "Пират" last_name : Предложение "Ученик"Применимо: "ИСТИННАЯ" цена: 50
first_name : "sumeet" last_name : "Prentice" offerApplicable: "ИСТИННАЯ" цена: 40
first_name : "jitendra" last_name : "Prentice" offerApplicable: "ИСТИННАЯ" цена: 101
first_name : "nithesh" last_name : предложение "Bodine"Применимо : "FALSE" цена : 40
first_name : "mahesh" last_name : предложение "Bodine"Применимо : "FALSE" цена : 40
first_name : "Свинья" last_name : Предложение "Bodine"Применимо : "FALSE" цена : 100
любая помощь спасибо заранее.