@Annettt

Как отсортировать без sort?

Как отсортировать массив по алфавиту и по цене без sort() через for?

var product = [ 
{name: 'Бакажан', price: 14}, 
{name: 'Помидор', price: 16}, 
{name: 'Слива', price: 15}, 
{name: 'Мороженное', price: 10}, 
{name: 'Чеснок', price: 5} 
]; 

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

product.sort(function(a, b){ 
if (a.name > b.name) { 
return 1; 
} if (a.name < b.name) { 
return -1; 
} 
});

var result = []; 
for (var i in product) { 
result.push({id: i, name: product[i]}); 
}; 

function compareObjects (a, b) { 
if (a.name > b.name) return 1; 
if (a.name < b.name) return -1; 
return 0; 
}; 

result.sort(compareObjects); 

for (var i = 0; i < product.length; i++) { 
console.log(product[i].name); 
};

Вот что у меня получилось с sort, но пробую через for ничего не получается.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
это обширная тема, гуглить "алгоритмы сортировки", например
https://medium.com/@alivander/сортировка-пузырьком...

function bubbleSort(arr) {
    for (var i = 0, endI = arr.length - 1; i < endI; i++) {
        var wasSwap = false;
        for (var j = 0, endJ = endI - i; j < endJ; j++) {
            if (arr[j].name > arr[j + 1].name) {
                var swap = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = swap;
                wasSwap = true;
            }
        }
        if (!wasSwap) break;
    }
    return arr;
}

bubbleSort(product)

/*
(5) [{…}, {…}, {…}, {…}, {…}]
0: {name: "Бакажан", price: 14}
1: {name: "Мороженное", price: 10}
2: {name: "Помидор", price: 16}
3: {name: "Слива", price: 15}
4: {name: "Чеснок", price: 5}
*/


https://javarush.ru/quests/lectures?quest=QUEST_HA...
здесь см. последние видео на странице, и вообще курс этих лекций
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
irishmann
@irishmann
Научись пользоваться дебаггером
Берем любой алгоритм и реализуем
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 110 000 до 150 000 руб.
Александрия Москва
от 200 000 до 250 000 руб.
Алгоритмика Москва
от 120 000 до 200 000 руб.
24 авг. 2019, в 11:59
5000 руб./за проект
24 авг. 2019, в 11:31
30000 руб./за проект
24 авг. 2019, в 10:59
750 руб./за проект