【问题标题】:Javascript array conversionsJavascript 数组转换
【发布时间】:2010-10-14 05:32:00
【问题描述】:

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

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 数组,我真的很想使用一个函数来进行转换。

【问题讨论】:

  • 感谢您的回复 - 我会试一试。不,这不是功课……只需要使用他们的数据库功能将数据从系统中取出并放入 dhtmlxGrid 控件中。

标签: javascript arrays


【解决方案1】:
function convert(outputdata){
  var arr = [];
 for(var i = 0; i<outputdata.length; i++){
    var output = outputdata[i];
    var temp = [output.itemA, output.itemDate, output.itemID];
    arr[i] = temp;
 } 
 return arr;
}

已编辑:已初始化arr

【讨论】:

  • 家庭作业问题最好推迟,而不是仅仅为他们做。
  • 声音。以后会好好照顾的。对于这个职位不能做太多。即使我删除它,也有可用的修订版。
  • 初学者问题和家庭作业是有区别的。我认为 OP 只是不精通 javascript 和/或编程,但这听起来像是一个现实生活中的问题。
【解决方案2】:

不是一个完整的回应,因为这闻起来像家庭作业(如果是,你应该这样标记它)。所以先提示:

  • 您可以通过编写类似 `[ 7, 9*7, "ho" ] 的内容来创建一个数组
  • 您可以获取带有点符号的属性,例如obj.itemA

【讨论】:

  • 中间人=作业?相当的假设。而且“警告群众”的反复评论是过分的,伙计。
  • 这听起来像是家庭作业,因为 1) 它足够简单,可以使用 任何 语言进行编程的人应该能够在比在此处发布所需的时间更短的时间内完成它, 2)具有任意“接近”界限,他不允许更改 3)由全新用户发布和 4)......你明白了
【解决方案3】:

你可能不得不自己写,例如:

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 的内容。

【讨论】:

  • 家庭作业问题最好推迟,而不是仅仅为他们做。
  • 如果一个人(不一定是这个人)今天在互联网上学到了一些有用的东西,那将是美好的一天。
猜你喜欢
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 2017-10-06
  • 2022-01-20
相关资源
最近更新 更多