@Mdmitr

Как отсортировать объект по цене?

Как можно отсортировать такой массив объектов по цене?

const products = [
    {"term":{
            "2": 
            {
                "id": "2",
                "price": "119",
                "quantity": "1"
            },
          "23":
          {
                "id": "9",
                "price": "199",
                "quantity": "5"
            }
        }
    },
    {"term":{
            "103": 
            {
                "id": "20",
                "price": "100",
                "quantity": "13"
            }
        }
    },
    {"term":{
            "256": 
            {
                "id": "678",
                "price": "569",
                "quantity": "6"
            }
        }
    }, 
];


Пытался сортировать так
но я получаю отсортированные цены а не объект
const srt = products.map((item) => {
            return Object.keys(item.term).map((key) => {
                return item.term[key].price;
            })
        })
console.log('sort', srt.sort((a, b) => a - b))


в итоге я хочу получить отсортированный массив объектов по цене
первый объект в массиве должен быть с самой маленькой ценой,
а последний объект с самой большой ценой.
ну от меньшей цены к большей
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
RAX7
@RAX7
products.sort((a, b) => {
  a = Math.min(...Object.values(a.term).map(v => Number(v.price)));
  b = Math.min(...Object.values(b.term).map(v => Number(v.price)));
  return a - b;
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы