我有一个函数(我无法更改)从数据库中查询数据并将其返回到一个变量中,如果我将其显示为文本,则该变量显示为以下格式:
var outputdata=
[
{ itemA: 'M0929', itemDate: new Date(1950,03-1,25,0,0,0,0), itemID: 'JDR12' },
{ itemA: 'X0121', itemDate: new Date(1983,07-1,07,8,0,0,0), itemID: 'RPN50' },
{ itemA: 'U0229', itemDate: new Date(1942,09-1,07,8,0,0,0), itemID: 'CRG98' },
];
我需要将其转换为以下格式(具体日期格式无关紧要)以供另一个函数使用(我也无法更改)。
var inputdata=[
[
"M0929",
"1950-03-25",
"JDR12"
],
[
"X0121",
"1983-07-07",
"RPN50"
],
[
"U0229",
"1942-09-07",
"CRG98"
]
];
有人可以提供一些帮助吗...我不太了解 javascript 数组,我真的很想用一个函数来进行转换。
最佳答案
您可能必须自己编写,例如:
function pad (what)
{
return what < 10 ? '0'+what : String(what);
}
function transformData (data)
{
var result = [];
for (var i=0;i<data.length;++i)
{
var date = data[i]['itemDate'];
result.push([
data[i]['itemA'],
date.getFullYear()+'-'+pad(date.getMonth())+'-'+pad(date.getDate()),
data[i]['itemID']
]);
}
return result;
}
var outputdata=
[
{ itemA: 'M0929', itemDate: new Date(1950,03-1,25,0,0,0,0), itemID: 'JDR12' },
{ itemA: 'X0121', itemDate: new Date(1983,07-1,07,8,0,0,0), itemID: 'RPN50' },
{ itemA: 'U0229', itemDate: new Date(1942,09-1,07,8,0,0,0), itemID: 'CRG98' },
];
var result = transformData(outputdata);
alert(result.join("\n"));
现在,需要注意的是 UTC 日期的性质。可以在此处找到更多详细信息 http://www.w3schools.com/jsref/jsref_obj_date.asp .此外,我强烈建议您阅读更多有关 Javascript 的一般信息。
关于Javascript 数组转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/660767/