2010-07-01 26 views

Trả lời

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

Thay thế (và nhiều cú pháp được sử dụng): 'hàm khác (a, b) {trả về Math.abs (a-b);}' Giải pháp tốt nhất và mẫu. – Alxandr

+1

.. và sau đó 'foo = khác biệt', để hoàn thành :) – mykhal

+0

Tại sao đặt hàm trong var? –

26

Sử dụng ternery

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

Hoặc

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

Đây là giải pháp tốt nhất là bất kỳ giải pháp sử dụng chức năng tuyệt đối sẽ cung cấp kết quả không chính xác nếu bạn muốn tìm sự khác biệt giữa một số tiêu cực và tích cực. –

+0

Tại sao lại như vậy? Bạn có thể đưa ra một ví dụ mà bạn nghĩ Math.abs (a - b) đưa ra kết quả sai? – Frank

+3

@Tom Gullen: 'Math.abs (3 - (-5))' sẽ trả về 8;) –

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

Điều đó có nghĩa là bạn muốn trả về giá trị tuyệt đối.

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

vẻ lẻ để xác định một chức năng hoàn toàn mới chỉ để không phải đặt một dấu trừ thay vì một dấu phẩy khi bạn gọi nó là:

Math.abs(a - b); 

vs

difference(a, b); 

(với sự khác biệt gọi một hàm khác mà bạn đã định nghĩa để gọi trả về đầu ra của ví dụ mã đầu tiên). Tôi chỉ sử dụng phương thức abs được xây dựng trên đối tượng Math.

0

Trong TypeScript, nếu có ai quan tâm:

public getDiff(value: number, oldValue: number) { 
    return value > oldValue ? value - oldValue : oldValue - value; 
} 
Các vấn đề liên quan