我有以下csv行:
{
"name": "Alliant Energy - Iowa",
"metering_type": "Annual Net",
"metering_dates": "\"0:2017-12-31T19:00:00.000Z 1:2018-01-09T19:00:00.000Z \"",
"meter_values": "\"0:'NY' 1:'LG' 2:'BG Los'\""
}
我要将metering_dates
和meter_values
转换为数组的地方。
我们可以看到每个新数组项都有索引号:
0:value 1:value ... n:value
更新:
这实际上来自csv文件,不仅日期可以是数组项。
例如
0:'blah blah' 1:'blah blah'
更新2: 我需要某种方式来知道字符串是数组还是字符串:
0:'blah blah' 1:'blah blah'
->数组
'blah blah'
->不是数组
答案 0 :(得分:2)
let str = "0:2017-12-31T19:00:00.000Z 1:2018-01-09T19:00:00.000Z"
let op = str.split(' ').map(e=> e.replace(/^\d+:/,''))
console.log(op)
您可以测试模式\d+:
,以检查其是否为数组格式
let obj = {
"name": "Alliant Energy - Iowa",
"metering_type": "Annual Net",
"metering_dates": "\"0:2017-12-31T19:00:00.000Z 1:2018-01-09T19:00:00.000Z \"",
"meter_values": "\"0:'NY' 1:'LG' 2:'BG Los'\"",
'test': 'some value some value'
}
let {meter_values:value, metering_dates:date,test} = obj
let testFunc = (value) => /^(?:")?\d+:/.test(value) ? 'Array' : 'String'
console.log(testFunc(value))
console.log(testFunc(date))
console.log(testFunc(test))
console.log(value.split(/\s+(?=\d:)/g))
答案 1 :(得分:0)
尝试使用以下正则表达式进行拆分
let arr = "0:2017-12-31T19:00:00.000Z 1:2018-01-09T19:00:00.000Z 2:balh blah "
let out = arr.split(/\b\d{1}:/).slice(1)
console.log(out)