我得到一個計算結果減去結果數。當我想洗掉這個數字前面的減號時,我收到“.. is not function”警告。這是什么原因?
function cms(miliseconds, format) {
let days, hours, minutes, seconds, total_hours, total_minutes, total_seconds;
total_seconds = parseInt(Math.floor(miliseconds / 1000));
total_minutes = parseInt(Math.floor(total_seconds / 60));
total_hours = parseInt(Math.floor(total_minutes / 60));
days = parseInt(Math.floor(total_hours / 24));
seconds = parseInt(total_seconds % 60);
minutes = parseInt(total_minutes % 60);
hours = parseInt(total_hours % 24);
switch (format) {
case 's':
return total_seconds;
case 'm':
return total_minutes;
case 'h':
return total_hours;
case 'd':
return days;
default:
return {d: days, h: hours, m: minutes, s: seconds};
}
}
const cd3F = cms(...); // Result: -3512
cd3F.slice(1));
Uncaught TypeError: cd3F.slice is not a function is not a function
uj5u.com熱心網友回復:
你的cms
函式要么回傳一個數字,要么回傳一個物件,它們都沒有slice
方法。
更好的函式是Math.abs(),它將任何負數轉換為正數(并保留任何正數),但請注意,NaN
如果您將物件傳遞給它,它將回傳。
uj5u.com熱心網友回復:
.slice 方法適用于字串和陣列,而不適用于數字。
function cms(miliseconds, format) {
let days, hours, minutes, seconds, total_hours, total_minutes, total_seconds;
total_seconds = parseInt(Math.floor(miliseconds / 1000));
total_minutes = parseInt(Math.floor(total_seconds / 60));
total_hours = parseInt(Math.floor(total_minutes / 60));
days = parseInt(Math.floor(total_hours / 24));
seconds = parseInt(total_seconds % 60);
minutes = parseInt(total_minutes % 60);
hours = parseInt(total_hours % 24);
switch (format) {
case 's':
return total_seconds;
case 'm':
return total_minutes;
case 'h':
return total_hours;
case 'd':
return days;
default:
return {d: days, h: hours, m: minutes, s: seconds};
}
}
const cd3F = cms(...); // Result: -3512
const abs_cd3F = Math.abs(cd3F);
你應該使用Math.abs。只有當它是一個字串時,你才能使用 .slice(1)。
uj5u.com熱心網友回復:
為什么這么復雜?n * -1
const cd3F = cms(...); // Result: -3512
cd3F = cd3F < 0 ? cd3F * -1 : cd3F;
console.log(cd3F); // 3512
uj5u.com熱心網友回復:
Numbers 和 Objects 都具有 slice 方法,因此對于字串,您首先必須進行以下更改
cd3F.slice(1));
到
cd3F.toString().slice(1))
但是,這并不能解決所有用例的問題,因為您有可能回傳一個物件。
我會使用 Math.abs() 因為它會回傳 NaN (如果它是一個物件)或一個正整數,如果它確實是一個 Number
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/467538.html
標籤:javascript 片
上一篇:Renci.SshNet.Common.SftpPermissionDeniedException:'權限被拒絕'
下一篇:改變嵌套的深層物件