2 回答
TA贡献1829条经验 获得超6个赞
要检查值是否包含有效数字,请将其强制转换为Number. 如果该值不是数字,则该转换的结果为false,否则为number。接下来,使用isNaN. 如果结果为假,则它是一个数字。为了简化这个,!预先添加一个来否定最终结果。
下面是一个例子:
!isNaN(Number("12.2"))
// returns true (valid number)
!isNaN(Number("asdf12"))
// returns false (no valid number)
!isNaN(Number(12))
// returns true (valid number)
所以在你的情况下,这应该可以解决问题:
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贡献1824条经验 获得超5个赞
但我有空列,我用 typeof 解决它,因为空列是“字符串”..使用 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]]}`;
}
仅当我想要将它放在引号中或在前面放一个逗号时才需要 $ 和 `。
添加回答
举报