Rookie here, I have been breaking my head all day trying to figure this one out…
I have tried different approaches trying to figure this out and looking all over this site for some references, but I have come short and hit a roadblock.
This is my code currently:
import fs from 'fs'
import csvjson from 'csvjson'
const path = 'cyberBackgroundChecks/importer/assets/file.csv'
if (path && fs.existsSync(path)) {
let file = fs.readFileSync(path);
file = file.toString()
const json = csvjson.toObject(file)
let dataObject = {}
for (let i = 0; i < json.length; i++) {
if (json.length > 0) {
dataObject['index'] = i
dataObject['name'] = json[i]['OWNER 1 FIRST NAME'] ? json[i]['OWNER 1 FIRST NAME'] : json[i]['OWNER 1 LAST NAME']
dataObject['streetAddress'] = json[i]['SITUS STREET ADDRESS']
dataObject['city'] = json[i]['SITUS CITY']
dataObject['state'] = json[i]['SITUS STATE']
}
console.log(dataObject)
}
} else {
console.log('The file does not exist');
}
I’m trying to get it to console log like this:
[
{
index: 0,
name: 'Betsy',
streetAddress: '1452 20th Ave',
city: 'Seattle',
state: 'WA'
},
{
index: 1,
name: 'Donald',
streetAddress: '2702 NW 67th St',
city: 'Seattle',
state: 'WA'
}
]
However, with my code, I can only get it to console log like this:
{
index: 0,
name: 'Betsy',
streetAddress: '1452 20th Ave',
city: 'Seattle',
state: 'WA'
}
{
index: 1,
name: 'Donald',
streetAddress: '2702 NW 67th St',
city: 'Seattle',
state: 'WA'
}
Advertisement
Answer
Currently, you are printing data object 2 times inside the for loop. What you want to do is to create an array, add 2 data objects in the array and then print the array.
const dataObjectArr = [];
for (let i = 0; i < json.length; i++) {
let dataObject = {};
dataObject['index'] = i;
dataObject['name'] = json[i]['OWNER 1 FIRST NAME'] ? json[i]['OWNER 1 FIRST NAME'] : json[i]['OWNER 1 LAST NAME'];
dataObject['streetAddress'] = json[i]['SITUS STREET ADDRESS'];
dataObject['city'] = json[i]['SITUS CITY'];
dataObject['state'] = json[i]['SITUS STATE'];
dataObjectArr.push(dataObject);
}
console.log(dataObjectArr);
I removed this statement if (json.length > 0) because this will always be true as the loop already checks json.length.
A good practice is to end a line in the javascript code with semicolon.