2012-04-06 87 views
6

Trong javascript tôi có như sau:javascript giá trị null trong chuỗi

var inf = id + '|' + city ; 

nếu id, thành phố là null thì inf sẽ được null.

Có cách nào khéo léo để nói nếu id hoặc thành phố rỗng không thì hãy để trống.

Tôi biết trong C# bạn có thể làm như sau:

var inf = (id ?? "") + (city ?? ""); 

Bất kỳ phương pháp tương tự trong javascript?

+0

Câu hỏi của bạn hơi khó hiểu. Vui lòng cung cấp thêm một giá trị ví dụ cho 'inf'. –

+0

có thể trùng lặp của [toán tử kết hợp null cho javascript?] (Http://stackoverflow.com/questions/476436/null-coalescing-operator-for-javascript) –

Trả lời

4
var inf = (id == null ? '' : id) + '|' + (city == null ? '' : city) 
+0

Đó chỉ là một cách lâu hơn để làm những gì Elliot đang làm trong câu trả lời của mình – nickf

+3

Tôi không biết tại sao điều này được chấp nhận thay vì câu trả lời của pysho. –

+0

Thỉnh thoảng đọc và hiểu các câu trả lời dài hơn và dễ hơn thì tốt hơn các câu trả lời ngắn và khó hiểu hơn. Miễn là nó không sai, tại sao mọi người quan tâm. –

11

Tổng số shot dài, nhưng cố gắng này:

var inf = (id || "") + "|" + (city || ""); 
+0

điều này sẽ làm việc cho các biến thể không xác định, không quá chắc chắn về giá trị null. –

+2

Tôi khuyên bạn nên thêm dấu ngoặc đơn: 'var inf = (id ||" ") +" | " + (thành phố || ""); ' –

+0

@Rocket: Được rồi, cảm ơn, mặc dù tôi không nghĩ nó quan trọng. –

20

Làm thế nào về:

var inf = [id, city].join('|'); 

EDIT: Bạn có thể loại bỏ những phần "trống" trước khi gia nhập, do đó nếu chỉ có một id và thành phố là null, inf sẽ chỉ chứa phần đó và nếu cả hai đều là null inf sẽ trống.

var inf = _([id, city]).compact().join('|'); // underscore.js 
var inf = [id, city].compact().join('|'); // sugar.js 
var inf = [id, city].filter(function(str) { return str; }).join('|'); // without helpers 
+2

Whoa, đẹp quá. –

+0

'inf' sẽ không được để trống, nếu' id' và 'city' là' null'. – Engineer

+0

@Engineer: Có, nó sẽ là '" | "', kết quả mong muốn. –

0
var inf = (id && city) ? (id+"|"+city) : ""; 
+0

Điều gì sẽ xảy ra nếu cái này hay cái kia là null? Anh ta muốn mỗi biến được thay thế bằng '" "' nếu nó là null, không phải toàn bộ. –

+0

@Rocket "nếu id hoặc thành phố là null thì inf sẽ là null", tôi nghĩ rằng anh ta muốn chuỗi rỗng hoặc một là null. – xdazz

0

Tương đương với C# var inf = (id ?? "") + (city ?? ""); (nếu idcity là nullable) là

var inf = (id || '') + (city || ''); 

này được gọi là 'Short-Circuit Evaluation'. Nullability không phải là một vấn đề trong javascript (trong js tất cả các biến là nullable), nhưng idcity phải được chỉ định (nhưng không cần một giá trị, như trong var id, city).

0
if (id != ""){ 
inf = id; 
if (city != ""){ inf += " | " + city ;} 
} 
else 
inf= city; 
Các vấn đề liên quan