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

151
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
Как доделать регулярное выражение для проверки значения на дробность?

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

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

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

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

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

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

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

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

173