@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 ничего не получается.
  • Вопрос задан
  • 3922 просмотра
Решения вопроса 2
irishmann
@irishmann
Научись пользоваться дебаггером
Берем любой алгоритм и реализуем
Ответ написан
Комментировать
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...
здесь см. последние видео на странице, и вообще курс этих лекций
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы