2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
要檢查值是否包含有效數(shù)字,請(qǐng)將其強(qiáng)制轉(zhuǎn)換為Number. 如果該值不是數(shù)字,則該轉(zhuǎn)換的結(jié)果為false,否則為number。接下來(lái),使用isNaN. 如果結(jié)果為假,則它是一個(gè)數(shù)字。為了簡(jiǎn)化這個(gè),!預(yù)先添加一個(gè)來(lái)否定最終結(jié)果。
下面是一個(gè)例子:
!isNaN(Number("12.2"))
// returns true (valid number)
!isNaN(Number("asdf12"))
// returns false (no valid number)
!isNaN(Number(12))
// returns true (valid number)
所以在你的情況下,這應(yīng)該可以解決問(wèn)題:
for (var i = 1; i < keysY.length; i++) {
if(!isNaN(Number(${entry[keysY[i]]}) {
// it's a number, no quotes:
values += `,${entry[keysY[i]]}`;
} else {
// it's not a number (NaN) add quotes:
values += `,"${entry[keysY[i]]}"`;
}
}

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
但我有空列,我用 typeof 解決它,因?yàn)榭樟惺恰白址?.使用 isNaN(Number() 也將空列顯示為“false”但必須為“true”或僅與 Number () 空列不是 NaN..
rec.forEach(entry => {
if (typeof entry[keysY[0]] == "string") {
values = `"${entry[keysY[0]]}"`
} else {
values = entry[keysY[0]]
}
for (var i = 1; i < keysY.length; i++) {
if (typeof entry[keysY[i]] == "string") {
values += `,"${entry[keysY[i]]}"`;
} else {
values += `,${entry[keysY[i]]}`;
}
僅當(dāng)我想要將它放在引號(hào)中或在前面放一個(gè)逗號(hào)時(shí)才需要 $ 和 `。
添加回答
舉報(bào)