将javascript字符串转换为二维数组

Convert a javascript string into a 2-dimensional array

本文关键字:二维数组 转换 字符串 javascript      更新时间:2023-09-26

这些数据来自使用jquery的getJSON方法的REST方法。

"[Date.UTC(2010,0,0,0,0,0,0), 157],[Date.UTC(2010,0,0,0,0,420,1), 157],[Date.UTC(2010,0,0,0,0,420,2), 282],[Date.UTC(2010,0,0,0,0,600,3), 282],[Date.UTC(2010,0,0,0,0,600,4), 125],[Date.UTC(2010,0,0,0,0,900,5), 125],[Date.UTC(2010,0,0,0,0,900,6), 282],[Date.UTC(2010,0,0,0,0,2100,7), 282],[Date.UTC(2010,0,0,0,0,2100,8), 125],[Date.UTC(2010,0,0,0,0,2400,9), 125],[Date.UTC(2010,0,0,0,0,2400,10), 295],[Date.UTC(2010,0,0,0,0,3600,11), 295],[Date.UTC(2010,0,0,0,0,3600,12), 125],[Date.UTC(2010,0,0,0,0,3900,13), 125],[Date.UTC(2010,0,0,0,0,3900,14), 288],[Date.UTC(2010,0,0,0,0,5100,15), 288],[Date.UTC(2010,0,0,0,0,5100,16), 125],[Date.UTC(2010,0,0,0,0,5400,17), 125]"

返回为字符串。我需要把它解析成二维数组。数组中的每一项都应该有一个日期和一个值。

我还可以完全控制REST方法,因此我可以更改数据返回的方式。我想尽快完成这个任务。

这是我们现在所做的,我认为可以改进:

 var jqxhr = $.getJSON(getDataURL, function(dataResult) {
        var result = dataResult;
        result =result.replace(/']','[/g, ']:[');
        result = result.replace(/')',/g, ');');
        var tempArray = result.split(':');
        var myarray = new Array();
        myarray[0] = new Array(2); // Make the first element an array of two elements
        for(i = 0; i < tempArray.length; i ++)
        {
          myarray[i] = tempArray[i].split(';');
          myarray[i][1] = myarray[i][1].replace(/'"/g,'');
          myarray[i][1] = myarray[i][1].replace(/']/g,'');  
          myarray[i][0] = myarray[i][0].replace(/'[/g,'');                             
        }                                                               
    })

尽管我将为此受到批评(eval倾向于存在安全风险),但我还是会使用

var myarray = eval("[" + result + "]");

您应该使用JSON将数据从服务器返回到JS脚本。这将非常容易操作它作为一个数组