简体   繁体   中英

How to write a For Loop with variables that include an incremental split [] to minify JS code?

Hopefully I am asking this question in the right way, I am a total noob to For Loops in JavaScript...

I have to write a For Loop for this:

var file = '/home/xxxxx/xxxx/xxxx/xxxx';
var obj = result.rows;
var split = JSON.stringify(obj).split(',');
var date1rpl = split[0].replace(/\"/g,"");
var date1og = date1rpl.slice(2,100);
var date1 = splitabc(date1og);
var usr1 = split[1].replace(/\"/g,"");
var session1 = split[2].replace(/("|])/g,"");
var date2rpl = split[3].replace(/\"/g,"");
var date2og = date2rpl.slice(1,100);
var date2 = splitabc(date2og);
var session2 = split[5].replace(/("|])/g,"");
var usr2 = split[4].replace(/\"/g,"");
var date3rpl = split[6].replace(/\"/g,"");
var date3og = date3rpl.slice(1,100);
var date3 = splitabc(date3og);
var session3 = split[8].replace(/("|])/g,"");
var usr3 = split[7].replace(/\"/g,"");
var date4rpl = split[9].replace(/\"/g,"");
var date4og = date4rpl.slice(1,100);
var date4 = splitabc(date4og);
var session4 = split[11].replace(/("|])/g,"");
var usr4 = split[10].replace(/\"/g,"");
var date5rpl = split[12].replace(/\"/g,"");
var date5og = date5rpl.slice(1,100);
var date5 = splitabc(date5og);
var session5 = split[14].replace(/("|])/g,"");
var usr5 = split[13].replace(/\"/g,"");
jsonfile.writeFile(file, obj);

The split[] seems to be incrementing by +3 for each user, session, date1rpl. How can I include this in a for loop that would run through the variables so that I can just have daterpl, dateog, date, usr, and session as variables and not have to number each variable and repeat it?

var date1rpl = split[0].replace(/\\"/g,""); var date1og = date1rpl.slice(2,100); var date1 = splitabc(date1og); var usr1 = split[1].replace(/\\"/g,""); var session1 = split[2].replace(/("|])/g,"");

So you want to loop over ever item in the split array and do some work on it and then save the updated version for later use.

You can use a For Loop

var dates = [];
var split = JSON.stringify(obj).split(',');
for(var i = 0; i< split.length; i++){
   var dateRpl = split[i].replace(/\"/g,"");
   var dateOG = dateRpl.slice(2,100);
   dates.push(splitabc(dateOG));
}

// dates is now an array of all the processed dates

Or you can use the forEach method on arrays

var dates = [];
var split = JSON.stringify(obj).split(',');
split.forEach(function(string) {
   var dateRpl = string.replace(/\"/g,"");
   var dateOG = dateRpl.slice(2,100);
   dates.push(splitabc(dateOG));
});

// dates is now an array of all the processed dates

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM