Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 19.06.2018, 21:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
может и есть но, с маленьким вроде все логично выводит, а там пытается "хитрить"
Ответить с цитированием
  #32 (permalink)  
Старый 19.06.2018, 21:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
/по умолчанию сортировка строк a > b ? 1 : a < b ? -1 : 0
var a = ['11-05-2018', '12-05-2017', '10-04-2017'];
a.sort();

alert(a);
alert('12-05-2017' > '11-05-2018')


Опасно так все строки сортировать
Ответить с цитированием
  #33 (permalink)  
Старый 19.06.2018, 21:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

laimas,
ты сортируешь строки, а результат хочешь как от даты, в строках "8" больше чем "20"
Ответить с цитированием
  #34 (permalink)  
Старый 19.06.2018, 21:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
ты сортируешь строки, а результат хочешь как от даты
А какая разница, дата ведь это строковое значение, именно поэтому не стоит оперировать форматом даты отличном от европейского - YYYY-MM-DD. Но ведь не запрещено.

Такие же проблемы могут быть и просто с числами (уберите дефисы, результат не лучше будет, так как это строки). А есть еще понятие "натуральная сортировка", в JS готовой функции для нее тоже нет.
Ответить с цитированием
  #35 (permalink)  
Старый 19.06.2018, 21:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

laimas,
не осилил
Ответить с цитированием
  #36 (permalink)  
Старый 19.06.2018, 22:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
не осилил
Что именно? Хотя согласен, не совсем корректно написал.

Ну например есть массив имен файлов, которые надо отсортировать:

var a = ["img12.png", "img10.png", "img2.png", "img1.png"];
a.sort();

alert(a);


и получим не то чего бы хотелось - img1.png, img2.png, img10.png, img12.png. Проблема в том, что сравнение a > b будет косячит с числами.
Ответить с цитированием
  #37 (permalink)  
Старый 19.06.2018, 22:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

laimas,
спасибо, но я пас.
Ответить с цитированием
  #38 (permalink)  
Старый 19.06.2018, 22:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от laimas
Ну например есть массив имен файлов, которые надо отсортировать:
возможно я что-то не понимаю ...
var a = ["img12.png", "img10.png", "img2.png", "img1.png"];
a.sort(function(a,b) {
  return a.match(/\d+/)[0]  - b.match(/\d+/)[0]
});

alert(a);

Последний раз редактировалось рони, 19.06.2018 в 22:17.
Ответить с цитированием
  #39 (permalink)  
Старый 19.06.2018, 22:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
возможно я что-то не понимаю ...
Все вы понимаете. ) Данный код вернет нужное, но только конкретно к данному случаю. Собственно вся эта тема и рассматривала "идеальный случай".

Проверьте свой код с таким, например, массивом: ["iag12.png", "iq10.png", "img2.png", "img1.png"] - с цифрами все будет Ок, но ведь не верно же будет. )
Ответить с цитированием
  #40 (permalink)  
Старый 19.06.2018, 22:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от laimas
Проверьте свой код с таким,
а зачем? с новым набором будет иной код ... какое будет тз, такая и будет сортировка, ...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript - Option, результаты из выпадающего меню. Результаты с большим количеством voron1990 Общие вопросы Javascript 3 30.04.2015 09:04
Сортировка таблицы по алфавиту dozer Events/DOM/Window 6 18.10.2014 00:22
как с помощью javascript установить selected для тега option? re-kru-t Общие вопросы Javascript 1 19.02.2011 15:49
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34