Javascript 数组转换

标签 javascript arrays

我有一个函数(我无法更改)从数据库中查询数据并将其返回到一个变量中,如果我将其显示为文本,则该变量显示为以下格式:

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/

相关文章:

javascript - 获取 Selenium 中选定元素的所有 CSS 属性的值

javascript - 如何在 AngularJS 自定义指令中指定模型?

javascript - 正则表达式问题 - 替换 float ,而不是整数

java - 保留一个数组中位于另一个数组中的特定元素

javascript - 比较多个 JS 数组的值

javascript - 为什么 htmlCollection 不继承自 array

javascript - 如何从 SAP UI 中的表中获取数据?

javascript - Codechef api 上的 CORS(使用 angularjs)

python - Ctypes:分配 double** ,将其传递给 C,然后在 Python 中使用

javascript - Jquery POST 不填充数组