JS не сортируется набор данных

86
28 марта 2022, 23:20

Есть набор данных:

let section = { 
  name: ["product1","product2","product3","product4","product5","product6","product7"], 
  count: [5,5,5,5,5,5,5], 
  prise: [10000.99,5000.99,8000.99,430.66,47535.45,1111.23,5400.78], 
};

Выполняю сортировку так:

  section.prise.sort(function(a, b) { 
   return (b.prise<a.prise) - (a.prise<b.prise) 
    }); 
    for (let i=0;i<=section.name.length;i++){ 
  console.log(section.name[i],section.count[i],section.prise[i]); 
}

Но массив не сортируется и остаётся прежним:

product1 5 10000.99 
product2 5 5000.99 
product3 5 8000.99 
product4 5 430.66 
product5 5 47535.45 
product6 5 1111.23 
product7 5 5400.78

Answer 1

let section = { 
  name: ["product1", "product2", "product3", "product4", "product5", "product6", "product7"], 
  count: [5, 5, 5, 5, 5, 5, 5], 
  prise: [10000.99, 5000.99, 8000.99, 430.66, 47535.45, 1111.23, 5400.78], 
}; 
 
let objs = []; 
for (let i = 0; i < section.name.length; i++) { 
  objs.push({ n: section.name[i], c: section.count[i], p: section.prise[i] }); 
} 
objs.sort((a, b) => a.p - b.p); 
for (let i = 0; i < section.name.length; i++) { 
  [section.name[i], section.count[i], section.prise[i]]  = [objs[i].n, objs[i].c, objs[i].p]; 
} 
 
for (let i = 0; i < section.name.length; i++) { 
  console.log(section.name[i], section.count[i], section.prise[i]); 
}

Answer 2
section.prise.sort(function(a, b) {
   return (b.prise<a.prise) - (a.prise<b.prise)

у вас в массиве prise у значений нет свойства prise. Так что вы сравниваете один undefined с другим. Собственно поэтому sort и не сортирует массив, бо незачем. Попробуйте

section.prise.sort((a,b)=>a-b)
READ ALSO
Как доделать регулярное выражение для проверки значения на дробность?

Как доделать регулярное выражение для проверки значения на дробность?

Есть функция, которая проверяет значение на дробное

105
Остановить setInterval() когда переменная 0

Остановить setInterval() когда переменная 0

Когда пользователю приходит новое сообщение, вывожу в title мигание, что новое сообщение как в вк

166
хранение и чтение локальных файлов

хранение и чтение локальных файлов

День добрый! Подскажите как организовать что-то типа локальной БДНужно с локального сайта получать содержимое локальных файлов из того...

113