2016-04-06 4 views
-2

В рамках, которые я использую, мне нужно передать функцию сортировки для моего массива. Проблема в том, что я не хочу, чтобы сортировка менялась. Есть функция сортировки, которая вернет тот же самый порядок?Функция сортировки, которая возвращает ту же сортировку

Пример:

var myObj= { 
    myArray:['value2','value49','value16'], 
    sort: function(a,b){} 
} 
myObj.myArray.sort(myObj.sort); 

Это упрощается, но требуется функция сортировки и будет выполняться на моем массиве, и я не имею никакого контроля над этим. Что бы заставить его вернуть массив в том же порядке?

+1

вы можете показать код? –

+2

A ** вид ** функция, или ** сравнить ** функция? (Один - самая простая функция в мире, вторая не существует) – Amit

+0

Можете ли вы поделиться некоторым кодом? И точное определение ожидаемой функции сортировки (или сравнения) – mmgross

ответ

1

Да:

function() {return 0} 

Просто возвращать 0, чтобы оставить заказ без изменений для любой пары элементов массива. Итак, верните его всем им. MDN docs for .sort() описывают поведение метода при возвращении 0:

Если compareFunction (а, б) возвращает 0, оставить и Ь без изменений с по отношению друг к другу

+0

Эта цитата не заканчивается «... но отсортирована по всем различным элементам. Примечание: стандарт ECMAscript не гарантирует такого поведения, и, следовательно, все браузеры (например, версии Mozilla, датируемые как минимум 2003 годом) уважают это ». – Amit

Смежные вопросы