2017-08-29 3 views
0

説明: Javascriptに精通するためにいくつかの演習を行っています。質問の1つは、以下の特定のオブジェクトの中で最小の数を見つけるように私に求めます。javacriptでPOSITIVE_INFINITYおよびMAX_VALUEに設定された数値と数値を比較した後、「未定義」が返される

var myObj = { key: [5, 8, 1, 4] }; 

私はPOSITIVE_INFINITYMAX_VALUEsmallestの私の初期値を設定します。 プログラムを実行した後(下記参照)、undefinedが返されました。ただし、smallest99999に設定すると、プログラムが正しく実行されます。

私の質問:POSITIVE_INFINITYおよびMAX_VALUEに変数smallestを設定すると、何が原因で未定義が返されますか?ご協力いただきありがとうございます。

var myObj = { key: [5, 8, 1, 4] }; 

function getSmallest(obj, key) { 

    //var smallest = Math.POSITIVE_INFINITY; //---> undefined is returned 
    //var smallest = Math.MAX_VALUE; //--->undefined is returned 
    var smallest = 99999; //---> Correct result is returned 

    if (!obj.hasOwnProperty(key) || !Array.isArray(obj[key]) || obj[key].length === 0) { 
    return undefined; 
    } 

    for (var i in obj[key]) { 
    if (obj[key][i] < smallest) { 
     smallest = obj[key][i]; 
    } 
    } 

    return smallest; 
} 

var output = getSmallest(myObj, 'key'); 
console.log(output); 
+1

なし 'MAX_INFINITY' – Bergi

+0

はありませんそれ以外に、その配列の中で最も小さい数字を見つける方法が少し短くなっています:['Math.min.apply(null、obj.key);'](https://jsfiddle.net/bj8tcsax/)。 (ES5バージョン。普及した演算子を使ったES6バージョンはこのコメントのすぐ下にあるBergiの例です)。 – Andy

+1

'Math.min(... obj [key])'を使わない理由は何ですか? – Bergi

答えて

0

Number.POSITIVE_INFINITYであるため、Math.POSITIVE_INFINITYではありません。 (MAX_VALUE用と同じ)

0

この(使用回数)を試してみてください。

var max = Number.MAX_VALUE; 
 
console.log(max); 
 

 
var min = Number.MIN_VALUE; 
 
console.log(min);

0

には、JavaScriptにはMAX_INFINITY一定ではありません。 POSITIVE_INFINITYでも、MAX_VALUEより大きいため、タスクを正しく実行できません。しかし、コメントで述べたように、単にMath.min.applyを使用することができます。

あなたが本当にJavaScriptの数定数の背後にある論理を理解したい場合は、あなたがNEGATIVE_INFINITYを使用し、それが(Number.MIN_SAFE_INTEGERを含む)すべてのJavaScript番号未満であることを見ることができる:

Number.NEGATIVE_INFINITY < Number.MIN_SAFE_INTEGER // true 
+0

"* MAX_INFINITY *はありません"。本気ですか? * Max Infinity *は私には素晴らしいスーパーヒーローの名前のように聞こえる、[* Max Power *](https://youtu.be/0GvVbIhKh-M)と[* "To infinity and beyond ..." * https://youtu.be/ejwrxGs_Y_I)。 ;-) – RobG

+0

@RobGあなたは正しいと思います... – clabe45

関連する問題