let args: string[] = process.argv.slice(2);
console.log(`All arguments: ${args}`);
let numbers: number[] = saveNumbers();
console.log(`All Numbers: ${numbers}`);
console.log(`1st argument < 10: ${firstNumberFullfill(numbers,x => x < 10)}`);
console.log(`1st argument > 10: ${firstNumberFullfill(numbers,x => x > 1000)}`);
console.log(`1st not numerical argument: ${firstNumberFullfill(args,x => isNaN(x))}`);
function saveNumbers():number[]{
let nums: number[] = [];
for(let a of args){
let num = parseInt(a);
if(isNaN(num) == false){
console.log(a)
nums.push(parseInt(a));
}
}
return nums;
}
function firstNumberFullfill(array: Array<any>,checkFunc: (num: number) => boolean):number|string{
for(let a of array){
if(checkFunc(a)){
return a;
}
}
return "no number found";
}
控制臺輸出
我的 IsNaN 說“12ab”是一個數字,但在第一個非數字引數中它是第一個非數字,我兩次使用了 isNaN 函式,所以我知道為什么它不起作用
uj5u.com熱心網友回復:
您在這里沒有比較相同的值:第一個 check ( saveNumbers) 測驗isNaN(parseInt("12ab")),而第二個測驗isNaN("12ab")。
saveNumbers將決議 "12ab" 并回傳 12,這是一個數字而不是NaN,同時isNaN("12ab")會顯示您傳遞的字串確實是NaN。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517333.html
上一篇:如何在物件文字中鍵入嵌套物件
