Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环处理JSON格式的数据并构造数组_Javascript - Fatal编程技术网

Javascript 循环处理JSON格式的数据并构造数组

Javascript 循环处理JSON格式的数据并构造数组,javascript,Javascript,我需要遍历JSON格式的数据并从中构造一个数组 我将这种格式的数据作为名称-值对 var jsonData = [{date:'August 19, 2004',volume:22088000}, {date:'August 20, 2004',volume:22088333} , {date:'August 21, 2004',volume:22088555}] 我想把上面所有的卷标数据都放在一个JavaScript数组中,这

我需要遍历JSON格式的数据并从中构造一个数组

我将这种格式的数据作为名称-值对

var jsonData = [{date:'August 19, 2004',volume:22088000},
                {date:'August 20, 2004',volume:22088333} , 
                {date:'August 21, 2004',volume:22088555}]
我想把上面所有的卷标数据都放在一个JavaScript数组中,这样它从0开始,一直到n个日期,它应该创建一个数组,如图所示

var volumeData = [[0,22088000],[1,22088333],[2,22088555]];
任何想法,如如何实现这一点


使用纯JavaScript的jQuery,一切都很好

它不是JSON,而是一个JavaScript对象。但是,您可以这样做:

jQuery.map(jsonData, function(elem, idx) { return [idx, elem.volume]; })
var volumeData = [];
for(var i = 0; i<jsonData.length; i++) {
  result.push([i, jsonData[i].volume]);
}
return volumeData;
var volumeData=[];
对于(var i=0;i

我喜欢对这样的对象执行for循环(我认为它看起来更干净,让我想起了c#)

您已经在标题中写过:必须循环数据。问题出在哪里?您尝试了什么?为什么需要数组数组?内部数组的第一个元素已经隐式可用作数组的索引。有些人称之为“JavaScript中的JSON”或“JSON对象”的东西只是JavaScript中的普通对象(用对象文字定义)。仅仅因为它们看起来相似并不意味着它们是相同的。如果
jsonData
将是“JavaScript中的JSON”,那么它将是一个字符串,需要首先解析。JSON是JavaScript对象的子集,这就是为什么我做了区分。我处理“JSON”作为子集,这是一种独立于语言的数据交换格式我指的是JSON子集的超集,它隐式地包含了子集。JSON将始终是一个有效的JavaScript对象,因为它基于JavaScript对象表示法,你根本不需要从字符串解析它。非常感谢fd、Sydenam、EMMERICH。这个网站和你们所有人都非常好。是的,JSON是Ja的子集vaScript对象文字,但仅此而已。JSON只能作为字符串存在于JavaScript中。尽管名称和语法相似,但不能说JavaScript中存在JSON。这是一个误解。这就像说Java和JavaScript是相同的,只是因为它们具有相似的名称和基于C的语法。您应该阅读:Incorrect、 这将产生
[22088000、22088333、22088555]
jsonData
不是一个对象,它是一个数组。您不应该在
中为…循环数组。
var volumeData = [];
for ( var i in jsonData ) {
    volumeData.push( jsonData[i].volume );
}