У меня есть эта функция ниже для сортировки ключей объекта в соответствии с их значениями.
var obj = {"A": 50, "B": 10, "C": 150 };
var ordered = Object.keys(obj).sort(function(a,b) {
return obj[a] > obj[b] ? -1 :
obj[b] > obj[a] ? 1 : 0;
});
console.log(ordered); // => [C, A, B];
Однако, когда у меня есть массив объектов, эта функция ничего не возвращает.
ДляМассив объектов, подобных этому ниже:
var objs = [
{"A": 50, "B": 10, "C": 150 },
{"A": 60, "B": 100, "C": 10 },
{"A": 150, "B": 100, "C": 30 }
]
Я пробовал что-то вроде этого:
let op =[];
objs.forEach((obj) => {
let ordered = {};
Object.keys(obj).sort().forEach((a,b) => {
ordered = obj[a] > obj[b] ? -1 : obj[b] > obj[a] ? 1 : 0;
});
op.push(ordered);
});
console.log(op);
Но эта функция возвращает ошибку: Идентификатор 'op' уже былЗаявлено.
Мне нужно вернуть что-то похожее на пример выше, но применить к каждому объекту.Результат будет:
console.log(ordered); // => [[C, A, B], [B, A, C], [A, B, C]]