2012-07-09 63 views
8

Tôi đang tìm cách hiệu quả nhất để xuất empty string thay vì "null" cho giá trị null. Có cách nào để thực hiện điều này mà không có câu lệnh có điều kiện (ví dụ: if hoặc ternary (? :) nhà điều hành).Không hiển thị null từ giá trị của đối tượng JavaScript

mẫu mã như sau:

$.each(data, function(index, item) { 
    return $("div#SearchResults").append(item.PhoneNumber); 
} 

khi item.PhoneNumber is null, trang này hiển thị với một chuỗi "rỗng" bên trong SearchResults div, thay vào đó tôi muốn trở thành trống.

+1

Tại sao? Tại sao bạn muốn tránh đánh giá các biến của mình trước khi xuất? –

+0

Tôi nghĩ rằng sẽ có một cách hiệu quả hơn, tức là một số chức năng tích hợp sẵn. Tôi ngạc nhiên không có một trong JavaScript hoặc jQuery: ( – Tsar

+0

Vâng, toán tử '||' ('hoặc') thực hiện điều này, nhưng biến vẫn được đánh giá đầu tiên, chỉ cần không có' if' hoặc ternary rõ ràng. –

Trả lời

17
$.each(data, function(index, item) { 
    return $("div#SearchResults").append(item.PhoneNumber || ""); 
} 

Với $.trim (bất ngờ chuyển đổi nullundefined để chuỗi rỗng):

$.each(data, function(index, item) { 
    return $("div#SearchResults").append($.trim(item.PhoneNumber)); 
} 

bất ngờ vì đó là cả unintuitive và không có giấy tờ.

+0

Việc bỏ phiếu vì chúng tôi đã đưa ra cùng một câu trả lời cùng một lúc và, cũng bởi vì tôi không hiểu –

1

Hãy thử điều này,

$.each(data, function(index, item) { 
    return $("div#SearchResults").append(item.PhoneNumber?item.PhoneNumber:""); 
} 
+2

Từ câu hỏi OPS * Có cách nào để thực hiện điều này ** không ** báo cáo có điều kiện (nghĩa là nếu hoặc?:) * – ManseUK

+1

Tôi không bỏ phiếu, nhưng câu hỏi cụ thể yêu cầu tránh ternary toán tử (cũng như 'if'), mặc dù nó không được gọi theo tên, vì vậy dễ bị bỏ qua. –

7

Nếu bạn đang thực sự quyết tâm không sử dụng một ternary if hoặc để đánh giá biến, sau đó có khả năng sử dụng các || điều hành:

$.each(data, function(index, item) { 
    return $("div#SearchResults").append(item.PhoneNumber || ''); 
} 

Nhưng, một cách trung thực, chỉ cần sử dụng một nhà điều hành có điều kiện, đó là ý nghĩa của chúng và giúp thực thi một số lượng bảo mật nhất định trong quá trình thực thi và đầu ra của tập lệnh của bạn.

+0

Hầu hết tôi sẽ đi cho một '=== null' ternarny nhưng không phải nếu stateme nt: P – Esailija

+0

Tôi đồng ý với cách tiếp cận của bạn đối với phương pháp đánh giá; nhưng tôi vẫn còn, bất kể, đánh giá rõ ràng giá trị biến/trả về, thay vì dựa vào phương thức trên (mặc dù nó hoạt động, nó chỉ cảm thấy ... * sai *, hơi). –

0

Without JQuery:

$.each(data, function(index, item) { 
    return $("div#SearchResults").append([item.PhoneNumber].join('')); 
} 
Các vấn đề liên quan