Javascript 转换字符串数组
我有这样一个数组:Javascript 转换字符串数组,javascript,angularjs,Javascript,Angularjs,我有这样一个数组: ["[Date.UTC(2016,09,30),250500.00]","[Date.UTC(2016,09,29),255100.83]", "[Date.UTC(2016,09,28),255600.82]"] 我怎样才能把它转换成这样的东西 [[Date.UTC(2016,09,27),256100.83],[Date.UTC(2016,09,25),261091.57],[Date.UTC(2016,09,23),261391.58]] 我正在用AngularJS
["[Date.UTC(2016,09,30),250500.00]","[Date.UTC(2016,09,29),255100.83]", "[Date.UTC(2016,09,28),255600.82]"]
我怎样才能把它转换成这样的东西
[[Date.UTC(2016,09,27),256100.83],[Date.UTC(2016,09,25),261091.57],[Date.UTC(2016,09,23),261391.58]]
我正在用AngularJS试试这个。好了
它虽然不漂亮,但很有效,而且不使用eval
var a=[“[Date.UTC(2016,09,30),250500.00],”[Date.UTC(2016,09,29),255100.83],“[Date.UTC(2016,09,28),255600.82]”;
var result=a.map(函数(元素){
var row=JSON.parse(element.replace('Date.UTC(',''))。replace('),'')。replace(/,0/g,,');
返回[新日期(第[0]行、第[1]行、第[2]行]、第[3]行];
});
控制台日志(结果)代码>试试这个
const输入=[
“[UTC日期(2016年9月30日),250500.00]”,
“[UTC日期(2016年9月29日),255100.83]”,
“[UTC日期(2016年9月28日),255600.82]”
]
const result=inputs.map(项=>{
常数项=项
.替换('[Date.UTC(','')
.替换(']','')
.替换('),“”)
常量trimItems=trimItem.split(','))
常量YYYY=trimItems[0]
常数MM=trimItems[1]
const DD=trimmitems[2]
常数结果=[
UTC日期(YYYY,MM,DD),
编号(项目[3])
]
返回结果
})
log(result)
这里有一个使用一些正则表达式的类似解决方案:)我想知道这个月是从零开始还是从一开始作为索引!Javascript日期以月为单位,索引为零
console.log([“[Date.UTC(2016,09,30),250500.00]”,“[Date.UTC(2016,09,29),255100.83]”,“[Date.UTC(2016,09,28),255600.82]”地图(功能(i){
漂浮;
var date=/date\.UTC\(\d{4}),(\d{2}),(\d{2})\/.exec(i);
日期=新日期(UTC日期(+日期[1],+日期[2]-1,+日期[3]);
漂浮=+i.split('),')[1]。split(']')[0];
返回[日期,漂浮];
}))
在georg's和Cerburs's之间,有一个类似于eval
但不使用eval
的中间地带:新功能
var from=[“[Date.UTC(2016,09,30),250500.00]”,“[Date.UTC(2016,09,29),255100.83]”,“[Date.UTC(2016,09,28),255600.82]”;
var to=from.map(e=>new函数('return'+e)()//to数组
.map(([a,b])=>[新日期(a,b]);//迄今为止
console.log(to)代码>
第二行无效。您可以在数组中获取结果时间戳,但不能获取该时间戳。arrayVar.toString()
用于this@Cerbrus是的,但我需要那种风格的海图。海图需要JS日期对象吗?还是时间戳?@Mr.George Wow,这是一个很好的隐藏自己不被eval警察发现的方法,但是新函数
只是eval是伪装。@georg新函数会评估您提供的任何字符串,但它不会泄漏eval这样的作用域,因此不会污染它们。作用域访问是eval使整个脚本变慢的主要原因,因为eval不仅影响自身,还影响其他代码。
data = ["[Date.UTC(2016,09,30),250500.00]","[Date.UTC(2016,09,29),255100.83]", "[Date.UTC(2016,09,28),255600.82]"]
var parseItem = function(it) {
var utcDateReplaced = it.replace(/Date\.UTC\((.*)\)/, function() {
argsRaw = arguments[1];
args = argsRaw.split(',');
return Date.UTC.apply(Date, args);
})
return JSON.parse(utcDateReplaced);
}
var result = data.map(parseItem);
console.log(result);
// ===> [[1477785600000, 250500], [1477699200000, 255100.83], [1477612800000, 255600.82]]