输入:
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);
}
失败了。
答案 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#toString
和String#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('-'); }));