2014-01-03 4 views
0

существует ли встроенная функция f(a, b) в JavaScript, что бы вернуть:функция сравнения в JavaScript

  • -1, если < б
  • 0, если == б
  • 1, если > 1

?

+0

Я думаю, что нет, но существует аналогичное поведение с 'inArray(), indexOf' – Praveen

+0

Вы можете использовать' Array.prototype.sort', но это, вероятно, не то, что вы ищете. – bevacqua

+0

Я полагаю, что это * для * сортировки. –

ответ

0

@ledlogic решение вдохновило меня для этого (работает только для чисел, что мой случай сейчас):

Math.sign(a - b); 

Преимущество этого что мне не нужно писать функцию для него, в отличие от решения [email protected], где У меня есть, напишите функцию для него, если я не хочу несколько оценок выражений a и b.

6

Нет, но это было бы очень легко сделать:

function compare(a, b) { 
    return a < b ? -1 : a == b ? 0 : 1; 
} 
+0

+1 особенно для «Нет» :) Это очевидное решение, в котором вы должны * создать функцию, если вы не хотите, чтобы выражения 'a' и' b' оценивались несколько раз. Теперь я нашел более элегантный метод, используя 'Math.sign()', см. Мой ответ. – TMS

0

Simpler метод, когда он гарантированно вы имеете дело с числами:

function(a, b) { 
    return a - b; 
} 

При работе со строками, вы можете использовать localeCompare.

Есть еще примеры сортировки на mozilla.org

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