拆分 csv 行并转换数值(Typescript,Javascript)
Split csv row and convert numeric values (Typescript, Javascript)
我正在尝试将 csv 文件行转换为数组,然后从字符串转换数值。
这是我的 csv 文件行:
const row = "TEXT,2020-06-04 06:16:34.479 UTC,179,0.629323";
这是我的目标数组(没有字符串格式的最后两个数值):
["TEXT","2020-06-04 06:16:34.479 UTC",179,0.629323]
我尝试了三种不同的模式,但我没有得到目标结果。
尝试 1:
const array1 = row.split(",");
结果:
["TEXT","2020-06-04 06:16:34.479 UTC","179","0.629323"]
尝试 2:
const array2 = row.split(",");
for (let element in array3){
array3[element] = +array3[element];
}
结果:
[null,null,179,0.629323]
尝试 3:
const array3 = row.split(",").map(x=>+x);
结果:
[null,null,179,0.629323]
有人可以帮助我吗?
谢谢!
JS中的inNan函数判断数字是否可以转为数字
试试下面的方法
const row = "TEXT,2020-06-04 06:16:34.479 UTC,179,0.629323";
const array1 = row.split(",");
const newArray = array1.map(value => toNumber(value))
console.log("newArray", newArray)
function toNumber(value) {
if(isNaN(value) || value === "")
return value
else
if(value.indexOf(".") === -1)
return parseInt(value)
else
return parseFloat(value)
}
另一种方法可以将这个值乘以 1。
let array = row.split(",").map(value => isNaN(value) ? value : value * 1);
使用isNaN()
const row = "TEXT,2020-06-04 06:16:34.479 UTC,179,0.629323";
const array = row.split(",").map(i => isNaN(i) ? i : +i)
console.log(array)
我正在尝试将 csv 文件行转换为数组,然后从字符串转换数值。
这是我的 csv 文件行:
const row = "TEXT,2020-06-04 06:16:34.479 UTC,179,0.629323";
这是我的目标数组(没有字符串格式的最后两个数值):
["TEXT","2020-06-04 06:16:34.479 UTC",179,0.629323]
我尝试了三种不同的模式,但我没有得到目标结果。
尝试 1:
const array1 = row.split(",");
结果:
["TEXT","2020-06-04 06:16:34.479 UTC","179","0.629323"]
尝试 2:
const array2 = row.split(",");
for (let element in array3){
array3[element] = +array3[element];
}
结果:
[null,null,179,0.629323]
尝试 3:
const array3 = row.split(",").map(x=>+x);
结果:
[null,null,179,0.629323]
有人可以帮助我吗?
谢谢!
JS中的inNan函数判断数字是否可以转为数字
试试下面的方法
const row = "TEXT,2020-06-04 06:16:34.479 UTC,179,0.629323";
const array1 = row.split(",");
const newArray = array1.map(value => toNumber(value))
console.log("newArray", newArray)
function toNumber(value) {
if(isNaN(value) || value === "")
return value
else
if(value.indexOf(".") === -1)
return parseInt(value)
else
return parseFloat(value)
}
另一种方法可以将这个值乘以 1。
let array = row.split(",").map(value => isNaN(value) ? value : value * 1);
使用isNaN()
const row = "TEXT,2020-06-04 06:16:34.479 UTC,179,0.629323";
const array = row.split(",").map(i => isNaN(i) ? i : +i)
console.log(array)