2010-07-01 18 views

Antwort

86
var difference = function (a, b) { return Math.abs(a - b); } 
+6

Alternative (und mehr verwendete Syntax): 'Funktion diff (a, b) {Rückgabe Math.abs (a-b);}' Beste und einfachste Lösung. – Alxandr

+1

.. und dann 'foo = Unterschied', um abgeschlossen zu sein :) – mykhal

+0

Warum die Funktion in eine Var? –

26

Mit ternery

function foo(num1, num2){ 
    return (num1 > num2)? num1-num2 : num2-num1 
} 

Oder

function foo(num1, num2){ 
    if num1 > num2 
    return num1-num2 
    else 
    return num2-num1 
} 
+8

Dies ist die beste Lösung ist eine Lösung absolute Funktion wird falsche Ergebnisse liefern, wenn Sie den Unterschied zwischen einem negativen und positiven Zahl finden wollte. –

+0

Warum das? Können Sie ein Beispiel geben, in dem Sie denken, dass Math.abs (a - b) das falsche Ergebnis liefert? – Frank

+3

@Tom Gullen: 'Math.abs (3 - (-5))' wird 8 zurückgeben;) –

4
function difference(n, m){ 
    return Math.abs(n - m) 
} 
7

Es bedeutet, dass Sie absoluten Wert zurückgeben möchten.

function foo(num1 , num2) { 
    return Math.abs(num1-num2); 
} 
9

scheint seltsam eine ganz neue Funktion nur zu definieren, nicht ein Minuszeichen anstelle eines Kommas haben zu setzen, wenn Sie es nennen:

Math.abs(a - b); 

vs

difference(a, b); 

(mit Differenz, die eine andere Funktion aufruft, die Sie zum Aufrufen definiert haben und die die Ausgabe des ersten Codebeispiels zurückgibt). Ich würde einfach die eingebaute ABS-Methode für das Math-Objekt verwenden.

0

In TypeScript, wenn jemand interessiert:

public getDiff(value: number, oldValue: number) { 
    return value > oldValue ? value - oldValue : oldValue - value; 
} 
Verwandte Themen