Good afternoon, I have a script that changes the value of the json file
const fsp = require('fs').promises;
async function udpateTimeInFile() {
try {
let data = await fsp.readFile('example.json');
let obj = JSON.parse(data);
obj.number = 777;
await fsp.writeFile('example.json', JSON.stringify(obj));
} catch(e) {
console.log(e);
}
}
udpateTimeInFile();
I need the script to find the first number 2 in the array and object numbers and change the unit to 3 and my json
{
"foods": 111,
"numbers": [1, 27, 5, 7, 0, 0, 2, 0, 0],
"surnames": [1, 1, 1, 1, 1, 1, 1, 1, 1],
"date": 0
}
And after execution js application the file would become like this
{
"foods": 111,
"numbers": [1, 27, 5, 7, 0, 0, 3, 0, 0],
"surnames": [1, 1, 1, 1, 1, 1, 1, 1, 1],
"date": 0
}
CodePudding user response:
You can use the Array#findIndex
method to find the index of the first occurrence of 2
, then you can use the index to change the value to 3
.
DEMO
const obj = {
"foods": 111,
"numbers": [1, 27, 5, 7, 0, 0, 2, 0, 0],
"surnames": [1, 1, 1, 1, 1, 1, 1, 1, 1],
"date": 0
},
i = obj.numbers.findIndex(num => num === 2);
if (i > -1) {
obj.numbers[i] = 3;
}
console.log( obj );