将javascript字符串转换为二维数组
这些数据来自使用jquery的getJSON方法的REST方法将javascript字符串转换为二维数组,javascript,jquery,Javascript,Jquery,这些数据来自使用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],[Da
"[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,'');
}
})
var jqxhr=$.getJSON(getDataURL,函数(dataResult)){
var结果=数据结果;
结果=结果。替换(/\]\,\[/g',]:[');
结果=结果。替换(/\)\,/g');';
var tempArray=result.split(“:”);
var myarray=新数组();
myarray[0]=新数组(2);//将第一个元素设置为两个元素的数组
对于(i=0;i
您应该使用JSON将数据从服务器返回到JS脚本。这将非常容易将其作为一个数组进行操作。您应该使用JSON将数据从服务器返回到JS脚本。这将非常容易将其作为一个数组进行操作。正如我将为此受到抨击一样(eval
往往是一种安全风险),我会这样做
var myarray = eval("[" + result + "]");
尽管我会因此受到抨击(
eval
往往是一种安全风险),我还是会这么做
var myarray = eval("[" + result + "]");
听起来很可怕,我在字符串的开头和结尾放上括号,然后使用eval@Joseph我曾考虑过使用jQuery.parseJSON,但我认为我的字符串对该函数无效。我将尝试发回数据,使其有效。听起来很可怕,我会在字符串的开头和结尾放上括号,然后使用eval@Joseph我想关于使用jQuery.parseJSON,但我认为我的字符串对该函数无效。我将尝试发回数据,使其有效。我将发布相同的答案。在这种情况下,
eval
有效(您甚至不需要添加括号)。但是在使用eval
之前,应该知道他在做什么。可以从阅读以下线索开始:@bfavareto哇!感谢链接!我回家后一定会阅读它。此外,我在没有括号的情况下尝试了它,它只为它分配了字符串中的最后一个数组,因此我认为括号是必要的。再次感谢你提供了link!关于括号,你是对的,对不起!我只测试了原始字符串的一部分…eval本身并不是一种安全风险。从未知源运行代码而不进行检查可能是,但你不需要eval。我将发布相同的答案。在这种情况下,eval
有效(您甚至不需要添加括号)。但是在使用eval
之前,应该知道他在做什么。可以从阅读以下线索开始:@bfavareto哇!感谢链接!我回家后一定会阅读它。此外,我在没有括号的情况下尝试了它,它只为它分配了字符串中的最后一个数组,因此我认为括号是必要的。再次感谢你提供了link!关于括号,你是对的,对不起!我只使用原始字符串的一部分进行了测试…eval本身并不是一种安全风险。从未知源运行代码而不进行检查可能是,但你不需要eval。