Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2021, 13:02
Интересующийся
Отправить личное сообщение для OlesiaBOM Посмотреть профиль Найти все сообщения от OlesiaBOM
 
Регистрация: 05.11.2020
Сообщений: 22

Сортировать масив обектов в порядке убывания
Сортировать масив обектов в порядке убывания по price или price.newUan
Есть идея как, но пока не работает.....
const products = [
    {
        ratingReviews: '264 отзыва',
        price: {
            oldUan: '4 333 грн',
            newUan: '3 799 грн',
        },
        name: 'Motorola MOTO G4 (XT1622) Black',
    }, {
        ratingReviews: '1355 отзывов',
        price: '4 999 грн',
        name: 'Samsung Galaxy J7 J700H/DS Black + карта памяти 16гб + чехол + защитное стекло!',
    }, {
        ratingReviews: '426 отзывов',
        price: '5 199 грн',
        name: 'Samsung Galaxy J5 (2016) J510H/DS Black + защитное стекло + чехол!',
    }, {
        ratingReviews: '403 отзыва',
        price: '4 349 грн',
        name: 'Xiaomi Redmi Note 4X 3/32GB Black',
    }, {
        ratingReviews: '488 отзывов',
        price: '6 199 грн',
        name: 'Samsung Galaxy J7 (2016) J710F/DS Gold + защитное стекло + чехол!',
    }, {
        ratingReviews: '198 отзывов',
        price: {
            oldUan: '3 495 грн',
            newUan: '2 995 грн',
        },
        name: 'Lenovo K5 (A6020a40) Silver',
    }, {
        ratingReviews: '352 отзыва',
        price: {
            oldUan: '9 799 грн',
            newUan: '7 999 грн',
        },
        name: 'Apple iPhone 5s 16GB Space Gray',
    }, {
        ratingReviews: '59 отзывов',
        price: '6 000 грн',
        name: 'Nokia 5 Dual Sim Tempered Blue',
    }, {
        ratingReviews: '119 отзывов',
        price: '11 999 грн',
        name: 'Samsung Galaxy A5 2017 Duos SM-A520 Black + карта памяти 128гб!',
    }, {
        ratingReviews: '1106 отзывов',
        price: '3 999 грн',
        name: 'Samsung Galaxy J5 J500H/DS Black + чехол + защитное стекло!',
    }, {
        ratingReviews: '380 отзывов',
        price: '2 199 грн',
        name: 'Huawei Y3 II Tiffany (White-Blue) + чехол + защитное стекло!',
    }, {
        ratingReviews: '86 отзывов',
        price: {
            oldUan: '24 999 грн',
            newUan: '22 999 грн',
        },
        name: 'Samsung Galaxy S8 64GB Midnight Black + карта памяти 64гб + оригинальный чехол!',
    }, {
        ratingReviews: '177 отзывов',
        price: '6 499 грн',
        name: 'Huawei P8 Lite 2017 White + УМБ Huawei AP08Q + защитное стекло + чехол!',
    }, {
        ratingReviews: '347 отзывов',
        price: '4 299 грн',
        name: 'Xiaomi Redmi 4X 3/32GB Black (Международная версия)',
    }, {
        ratingReviews: '709 отзывов',
        price: '2 799 грн',
        name: 'Samsung Galaxy J1 2016 SM-J120H Black + защитное стекло + чехол!',
    }, {
        ratingReviews: '527 отзывов',
        price: '3 999 грн',
        name: 'Huawei Y6 Pro Gold + чехол + защитное стекло!',
    }, {
        ratingReviews: '66 отзывов',
        price: '16 499 грн',
        name: 'Apple iPhone 6s 32GB Gold',
    }, {
        ratingReviews: '14 отзывов',
        price: '11 499 грн',
        name: 'Apple iPhone 6 32GB Space Gray',
    }, {
        ratingReviews: '70 отзывов',
        price: {
            oldUan: '7 399 грн',
            newUan: '5 999 грн',
        },
        name: 'Asus ZenFone 2 32GB (ZE551ML) Black',
    }, {
        ratingReviews: '45 отзывов',
        price: '4 299 грн',
        name: 'Nokia 3 Dual Sim Silver White + сертификаты 500 грн!',
    }, {
        ratingReviews: '376 отзывов',
        price: '3 899 грн',
        name: 'Meizu M3 Note 32GB Grey (Международная версия)',
    }, {
        ratingReviews: '111 отзывов',
        price: {
            oldUan: '9 999 грн',
            newUan: '7 999 грн',
        },
        name: 'Sony Xperia X Dual (F5122) White',
    }, {
        ratingReviews: '40 отзывов',
        price: '2 222 грн',
        name: 'Lenovo Vibe C (A2020) Black + УМБ PowerPlant 5200 mAh в подарок!',
    }, {
        ratingReviews: '93 отзыва',
        price: '18 999 грн',
        name: 'Apple iPhone 7 32GB Black',
    }, {
        ratingReviews: '33 отзыва',
        price: '16 999 грн',
        name: 'Huawei P10 4/32GB Black + сертификат 2500грн + чехол Huawei Smart View Cover!',
    }, {
        ratingReviews: '71 отзыв',
        price: {
            oldUan: '2 399 грн',
            newUan: '1 999 грн',
        },
        name: 'LG K5 X220ds Gold',
    }, {
        ratingReviews: '39 отзывов',
        price: '2 995 грн',
        name: 'Lenovo C2 Power (K10a40) Black',
    }, {
        ratingReviews: '156 отзывов',
        price: '2 599 грн',
        name: 'Nous NS 5006 Gold',
    }, {
        ratingReviews: '40 отзывов',
        price: '19 689 грн',
        name: 'LG G6 Mystic White',
    }, {
        ratingReviews: '24 отзыва',
        price: '5 995 грн',
        name: 'Motorola MOTO G5 (XT1676) Grey',
    }, {
        ratingReviews: '7 отзывов',
        price: {
            oldUan: '10 999 грн',
            newUan: '9 999 грн',
        },
        name: 'HTC One X10 Dual Sim Silver',
    }, {
        ratingReviews: '18 отзывов',
        price: {
            oldUan: '5 999 грн',
            newUan: '4 999 грн',
        },
        name: 'Sony Xperia L1 Dual Black',
    }];
const sortedByPrice = () => {
    return products.sort((a, b) => parseFloat(a.price.newUan === undefined ? a.price : a.price.newUan) - parseFloat(b.price.newUan === undefined ? b.price : b.price.newUan));

};


console.log(sortedByPrice(products));
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2021, 13:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

OlesiaBOM,
пробелы сотрите, прежде чем цифры искать
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2021, 13:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

OlesiaBOM,
const products = [
    {
        ratingReviews: '264 отзыва',
        price: {
            oldUan: '4 333 грн',
            newUan: '3 799 грн',
        },
        name: 'Motorola MOTO G4 (XT1622) Black',
    }, {
        ratingReviews: '1355 отзывов',
        price: '4 999 грн',
        name: 'Samsung Galaxy J7 J700H/DS Black + карта памяти 16гб + чехол + защитное стекло!',
    }, {
        ratingReviews: '426 отзывов',
        price: '5 199 грн',
        name: 'Samsung Galaxy J5 (2016) J510H/DS Black + защитное стекло + чехол!',
    }, {
        ratingReviews: '403 отзыва',
        price: '4 349 грн',
        name: 'Xiaomi Redmi Note 4X 3/32GB Black',
    }, {
        ratingReviews: '488 отзывов',
        price: '6 199 грн',
        name: 'Samsung Galaxy J7 (2016) J710F/DS Gold + защитное стекло + чехол!',
    }, {
        ratingReviews: '198 отзывов',
        price: {
            oldUan: '3 495 грн',
            newUan: '2 995 грн',
        },
        name: 'Lenovo K5 (A6020a40) Silver',
    }, {
        ratingReviews: '352 отзыва',
        price: {
            oldUan: '9 799 грн',
            newUan: '7 999 грн',
        },
        name: 'Apple iPhone 5s 16GB Space Gray',
    }, {
        ratingReviews: '59 отзывов',
        price: '6 000 грн',
        name: 'Nokia 5 Dual Sim Tempered Blue',
    }, {
        ratingReviews: '119 отзывов',
        price: '11 999 грн',
        name: 'Samsung Galaxy A5 2017 Duos SM-A520 Black + карта памяти 128гб!',
    }, {
        ratingReviews: '1106 отзывов',
        price: '3 999 грн',
        name: 'Samsung Galaxy J5 J500H/DS Black + чехол + защитное стекло!',
    }, {
        ratingReviews: '380 отзывов',
        price: '2 199 грн',
        name: 'Huawei Y3 II Tiffany (White-Blue) + чехол + защитное стекло!',
    }, {
        ratingReviews: '86 отзывов',
        price: {
            oldUan: '24 999 грн',
            newUan: '22 999 грн',
        },
        name: 'Samsung Galaxy S8 64GB Midnight Black + карта памяти 64гб + оригинальный чехол!',
    }, {
        ratingReviews: '177 отзывов',
        price: '6 499 грн',
        name: 'Huawei P8 Lite 2017 White + УМБ Huawei AP08Q + защитное стекло + чехол!',
    }, {
        ratingReviews: '347 отзывов',
        price: '4 299 грн',
        name: 'Xiaomi Redmi 4X 3/32GB Black (Международная версия)',
    }, {
        ratingReviews: '709 отзывов',
        price: '2 799 грн',
        name: 'Samsung Galaxy J1 2016 SM-J120H Black + защитное стекло + чехол!',
    }, {
        ratingReviews: '527 отзывов',
        price: '3 999 грн',
        name: 'Huawei Y6 Pro Gold + чехол + защитное стекло!',
    }, {
        ratingReviews: '66 отзывов',
        price: '16 499 грн',
        name: 'Apple iPhone 6s 32GB Gold',
    }, {
        ratingReviews: '14 отзывов',
        price: '11 499 грн',
        name: 'Apple iPhone 6 32GB Space Gray',
    }, {
        ratingReviews: '70 отзывов',
        price: {
            oldUan: '7 399 грн',
            newUan: '5 999 грн',
        },
        name: 'Asus ZenFone 2 32GB (ZE551ML) Black',
    }, {
        ratingReviews: '45 отзывов',
        price: '4 299 грн',
        name: 'Nokia 3 Dual Sim Silver White + сертификаты 500 грн!',
    }, {
        ratingReviews: '376 отзывов',
        price: '3 899 грн',
        name: 'Meizu M3 Note 32GB Grey (Международная версия)',
    }, {
        ratingReviews: '111 отзывов',
        price: {
            oldUan: '9 999 грн',
            newUan: '7 999 грн',
        },
        name: 'Sony Xperia X Dual (F5122) White',
    }, {
        ratingReviews: '40 отзывов',
        price: '2 222 грн',
        name: 'Lenovo Vibe C (A2020) Black + УМБ PowerPlant 5200 mAh в подарок!',
    }, {
        ratingReviews: '93 отзыва',
        price: '18 999 грн',
        name: 'Apple iPhone 7 32GB Black',
    }, {
        ratingReviews: '33 отзыва',
        price: '16 999 грн',
        name: 'Huawei P10 4/32GB Black + сертификат 2500грн + чехол Huawei Smart View Cover!',
    }, {
        ratingReviews: '71 отзыв',
        price: {
            oldUan: '2 399 грн',
            newUan: '1 999 грн',
        },
        name: 'LG K5 X220ds Gold',
    }, {
        ratingReviews: '39 отзывов',
        price: '2 995 грн',
        name: 'Lenovo C2 Power (K10a40) Black',
    }, {
        ratingReviews: '156 отзывов',
        price: '2 599 грн',
        name: 'Nous NS 5006 Gold',
    }, {
        ratingReviews: '40 отзывов',
        price: '19 689 грн',
        name: 'LG G6 Mystic White',
    }, {
        ratingReviews: '24 отзыва',
        price: '5 995 грн',
        name: 'Motorola MOTO G5 (XT1676) Grey',
    }, {
        ratingReviews: '7 отзывов',
        price: {
            oldUan: '10 999 грн',
            newUan: '9 999 грн',
        },
        name: 'HTC One X10 Dual Sim Silver',
    }, {
        ratingReviews: '18 отзывов',
        price: {
            oldUan: '5 999 грн',
            newUan: '4 999 грн',
        },
        name: 'Sony Xperia L1 Dual Black',
    }];
const sortedByPrice = () => {

    return products.sort((a, b) => parseFloat((a.price.newUan || a.price || '0').replace(/\s+/g, '')) - parseFloat((b.price.newUan || b.price || '0').replace(/\s+/g, '')));

};


console.log(sortedByPrice(products));
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2021, 13:38
Интересующийся
Отправить личное сообщение для OlesiaBOM Посмотреть профиль Найти все сообщения от OlesiaBOM
 
Регистрация: 05.11.2020
Сообщений: 22

спасибо, || явно лучшее решения.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить заданный числовой массив X (M) в порядке убывания значений его элементов rjabijj Общие вопросы Javascript 6 06.07.2012 21:34
Упорядочить заданный числовой массив X (M) в порядке убывания значений его элементов. Drimmer Серверные языки и технологии 0 02.07.2012 18:22
расставить в порядке убывания qwertyuiop10 Общие вопросы Javascript 13 04.10.2011 18:10