我写了一些代码,根据txt文件中的数据在js文件中创建对象数组,如下所示:
var num1 = ['100', '200', '500', '1000']
var num2 = ['10', '20', '30', '40', '50']
for (var i of num1) {
for (var j of num2) {
var source = './dat/txt/data_' + i + '_' + j + '.txt'
var dest = './dat/js/data_' + i + '_' + j + '.js'
var write = '[n'
fs.readFile(source, 'utf-8', function (err, data) {
if (err) {
console.log(err)
}
var datArray = data.split('rn')
for(let k=0;k<parseInt(i);k++){
var numbers = datArray[k].split(' ')
write = write.concat('{npos:nx:',numbers[0],',ny:',numbers[1],'n},nbeta:',numbers[2],'n},')
}
})
fs.writeFile(dest, write, (err) => {
if (err) {
console.log(err)
} else console.log('Written successfully')
})
}
}
txt文件的格式如下:
1 2 3
1 2 3
1 2 3
....
我想创建如下对象数组:
[
{
pos: {
x: 1,
y: 2,
},
beta: 3
},
...
]
当我运行代码时,它会出现以下错误:
var numbers = datArray[k].split(' ')
TypeError: Cannot read properties of undefined (reading 'split')
我试着记录数组datArray,它是一个普通的字符串数组,datArray的长度等于I的值。输出文件也只写一个字符"["和一个换行符。我在这里做错了什么?
我想解决这个问题更改此行:
var numbers = datArray[k].split(' ')
这个:
var numbers = datArray[k]?.split(' ')