Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do we slice individual items in a javascript list

Tags:

javascript

Input : dates = [201701, 201702, 201703]

I want the output as [2017-01, 2017-02, 2017-03]

I tried using the slice method in javascript, but it fails

for (var i in dates) {
dates[i].slice(0, 4) + "-" + dates[i].slice(4);
}

It fails.

like image 613
swat Avatar asked Dec 06 '25 05:12

swat


2 Answers

You just forgot toString():

var dates =  [201701, 201702, 201703];

for (var i = 0; i < dates.length; i++) {
  console.log(dates[i].toString().slice(0, 4) + "-" + dates[i].toString().slice(4));
}
like image 81
Arg0n Avatar answered Dec 08 '25 18:12

Arg0n


You could use Number#toString and String#replace for the wanted dates.

var dates =  [201701, 201702, 201703],
    result = dates.map(a => a.toString().replace(/(?=..$)/, '-'));
    
console.log(result);

Or use String#split.

var dates =  [201701, 201702, 201703],
    result = dates.map(a => a.toString().split(/(?=..$)/).join('-'));
    
console.log(result);

Both examples with ES5

var dates =  [201701, 201702, 201703];

console.log(dates.map(function (a) { return a.toString().replace(/(?=..$)/, '-'); }));
console.log(dates.map(function (a) { return a.toString().split(/(?=..$)/).join('-'); }));
like image 26
Nina Scholz Avatar answered Dec 08 '25 19:12

Nina Scholz