Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2015, 23:05
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

отсортировать массив
Здравствуйте, подскажите пожалуйста как отсортировать такой вот массив
var arr = ["кокос", "абрикос", "банан", "персик" "апельсин1","апельсин2"]
так, чтобы все апельсины были сначала, а остальная жрачка отсортировалась по алфавиту после апельсинов. Нужно чтоб массив стал таким arr = ["апельсин1","апельсин2","абри ос","банан","кокос","персик"]. Я сделал так:
$(function(){
var arr=["апельсин1","апельсин2","абрикос","банан","кокос","персик"]
var result_arr=[];
arr.sort();
var nameLengths= arr.filter(function(name) {
if (name.indexOf("апельсин")+1) {
result_arr.push(name)
}
return name.indexOf("апельсин");
});

$('h1').html(result_arr.concat(nameLengths).join());
})


но я хочу отсортировать при помощи метода sort().
такой вот код вставляет все апельсины вначало, но не сортирует остальную жрачку по алфавиту
function compareElements(a,b){
      
       if ((a.indexOf("апельсин")+1)<(b.indexOf("апельсин")+1)) return 1;
       if ((a.indexOf("апельсин")+1)>(b.indexOf("апельсин")+1)) return -1;
    }
  arr.sort(compareElements);
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2015, 23:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Moloch,
<script>
var arr = ["кокос", "абрикос", "банан", "персик" ,"апельсин1","апельсин2"];
function fn(a, b) {
    var c = /^апельсин/;
    return c.test(a) == c.test(b) ? a < b ? -1 : a > b ? 1 : 0 : c.test(a) ? -1 : 1
};
document.write(arr.sort(fn))
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2015, 09:27
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

Благодарю! то что нужно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отсортировать массив Jekins Элементы интерфейса 6 14.04.2014 23:01
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 07:33
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 22:36
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30