-4

ランク順(最高の「1」、最低の「4」)に応じて、未定義を含めずvar outputにを表示するにはどうすればよいですか。var one OR two OR three Or four例えば

var one = //undefined
var two = "yes121";
var three = "no";
var four = "yes";
var output = // should be "yes121" as `var two` has the higest rank that is not undefined.

var output = 1 + 2 + 3+4として出力しました。しかし、明らかな理由で、私が求めていることには不要です。

明らかにする

4つの変数「1」「2」「3」および「4」がある場合、出力変数を、下位ランクを除く「1」(および最低は「4」)である最高ランクの変数として設定するにはどうすればよいですか。未定義の変数および上位の変数。

4

2 に答える 2

0

私はあなたを正しく理解していますか:VALUEが定義されていない変数を無視して、NAMEがゼロに最も近い変数を返したいですか?

それを行う唯一の方法は、未定義でないかどうかを1つずつテストすることです。

var one = //undefined
var two = "yes121";
var three = "no";
var four = "yes";
var output;

if (one !=== undefined) output = one;
else if (two !=== undefined) output = two;
else if (three !=== undefined) output = three;
else if (four !=== undefined) output = four;

あるいは、これを行うことができます:

var output = one || two || three || four; 

ただし、これは偽の表現で問題を引き起こす可能性があります。(''、0、-1、NaNなど)

ただし、配列を作成してループできるようにするには、どうすればよいと思いますか。

于 2012-04-16T20:45:30.427 に答える
0

演算子を使用し||ます。左端の偽ではない値を返します。例:式

var output = one || two || three || four;

を返し"yes121"ます。ただし、偽ではないということは、空の文字列も偽になることを意味します。確認するにundefinedは、値の配列をループする必要があります。

var vals = [undefined, "yes121", "no", "yes"];
var output = vals.reduce(function(a, b) {
    return (typeof a == "undefined") ? b : a;
});
于 2012-04-16T20:41:14.913 に答える