Как отсортировать эти обьекты по прайсу?

var goods = {
    '14042G' : {
        'img' : 'img/sushka.png',
        'name' : 'Сушка кухонна хром с алюминиевой рамой',
        'code' : '14042G',
        'price' : '700',
    },

    '14042B' : {
        'img' : 'img/sushka.png',
        'name' : 'Сушка кухонна хром с алюминиевой рамой',
        'code' : '14042B',
        'price' : '900'
    },

    '14042С' : {
        'img' : 'img/sushka.png',
        'name' : 'Сушка кухонна хром с алюминиевой рамой',
        'code' : '14042B',
        'price' : '100'
    }
};

var product__carts = '';
for (key in goods) {
    product__carts += 
    '<li class="product__cart">'
    +'<img class="product__img" src="' +goods[key].img +'">'
    +'<h3 class="product__name">' +goods[key].name +'<h1>'
    +'<p class="product__code"> Код товару:' +goods[key].code +'</p>'
    +'<p class ="product__down"><span class="product__pirce">' +goods[key].price +' Грн' +'</span>' +'<img src="img/basket.svg" class="pointer" alt=""></p>'
    +'</li>'
}

document.getElementById('catalog__goods').innerHTML = product__carts

Ответы (2 шт):

Автор решения: Ivan Silkin

Не уверен, что это поможет, но в некоторых других языках, схожих по синтаксису с JavaScript, это можно сделать примерно так:

goods = goods.Select( g => g ).OrderBy( g => g.price).Descending();

Должны быть аналогичные методы в скрипте, я уверен, для массивов. Надо искать по ключевым словам sort array of objects descending js в гугле, желательно на английском, скорее всего там будет прямо пример кода.

Навроде того (гуглится не более 5 минут):

goods.sort(function(a, b) {
    return parseFloat(a.price) - parseFloat(b.price);
});

или для ES6

goods.sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
// нисходящий порядок
goods.sort((a, b) => parseFloat(b.price) - parseFloat(a.price));

сурс: https://stackoverflow.com/a/979289/6897369

→ Ссылка
Автор решения: Daniel Laskin

Вообще лучше однотипные объекты передавать в массиве. Но если входящие данные изменить нельзя, то сортировка объекта делается следующим образом. Нужно взять все значения объекта goods и уже массив этих значений сортировать

const product__carts = Object.values(goodsData)
.sort((a, b) => a.price - b.price)
.reduce((acc, item) => acc +
    `<li class="product__cart">
    <img src="${item.img}" alt="${item.name}">
    <img class="product__img" src="${item.img}">
    <h3 class="product__name">${item.name}<h1>
    <p class="product__code">${item.code}</p>
    <p class ="product__down">
        <span class="product__pirce">${item.price} Грн</span>
        <img src="img/basket.svg" class="pointer" alt="">
    </p>
</li>`, '');
→ Ссылка