我们如何在javascript列表中对单个项目进行切片

时间:2017-06-16 13:36:12

标签: javascript

输入: dates = [201701, 201702, 201703]

我希望输出为[2017-01, 2017-02, 2017-03]

我尝试在javascript中使用切片方法,但它失败了

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

失败了。

2 个答案:

答案 0 :(得分:3)

你刚忘了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));
}

答案 1 :(得分:2)

您可以将Number#toStringString#replace用于所需日期。

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

或使用String#split

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

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('-'); }));