Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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数组?_Javascript_Jquery_Coldfusion - Fatal编程技术网

如何创建和组织JavaScript数组?

如何创建和组织JavaScript数组?,javascript,jquery,coldfusion,Javascript,Jquery,Coldfusion,我正在使用ColdFusion 8和jQuery 1.8 我从数据库中得到一些信息,并填充到div中,如下所示: <div class='SpecInfo' data-height='10' data-width='23' data-length='156'></div> <div class='SpecInfo' data-height='20' data-width='21' data-length='159'></div> <div c

我正在使用ColdFusion 8和jQuery 1.8

我从数据库中得到一些信息,并填充到div中,如下所示:

<div class='SpecInfo' data-height='10' data-width='23' data-length='156'></div>
<div class='SpecInfo' data-height='20' data-width='21' data-length='159'></div>
<div class='SpecInfo' data-height='30' data-width='25' data-length='154'></div>
<div class='SpecInfo' data-height='40' data-width='27' data-length='155'></div>
<input type='button' id='GoButton' value='Go!'>
[10,23,156]
[20,21,159]
[30,25,154]
[40,27,155]
对于每个div,我希望所有属性都在一个地方。我想要更像这样的东西:

<div class='SpecInfo' data-height='10' data-width='23' data-length='156'></div>
<div class='SpecInfo' data-height='20' data-width='21' data-length='159'></div>
<div class='SpecInfo' data-height='30' data-width='25' data-length='154'></div>
<div class='SpecInfo' data-height='40' data-width='27' data-length='155'></div>
<input type='button' id='GoButton' value='Go!'>
[10,23,156]
[20,21,159]
[30,25,154]
[40,27,155]

我做错了什么?如何组织数组?

那么为什么要将所有数据放在3个单独的数组中,而不是放在一个对象数组中

而不是

    SpecArray['Height'].push(H);
    SpecArray['Width'].push(W);
    SpecArray['Length'].push(L);
使用

这将产生如下所示的对象数组:

[
 { 'height': 10, 'width': 23, 'length': 156 },
 { 'height': 20, 'width': 21, 'length': 159 },
 { 'height': 30, 'width': 25, 'length': 154 },
 { 'height': 40, 'width': 27, 'length': 155 }
]

但是,您必须将SpecArray初始化为一个数组,而不是一个包含3个数组的对象。

那么,为什么要将所有数据放在3个单独的数组中,而不是一个对象数组中呢

而不是

    SpecArray['Height'].push(H);
    SpecArray['Width'].push(W);
    SpecArray['Length'].push(L);
使用

这将产生如下所示的对象数组:

[
 { 'height': 10, 'width': 23, 'length': 156 },
 { 'height': 20, 'width': 21, 'length': 159 },
 { 'height': 30, 'width': 25, 'length': 154 },
 { 'height': 40, 'width': 27, 'length': 155 }
]

但是,您必须将SpecArray初始化为数组,而不是作为包含3个数组的对象。

您能澄清这一点吗?但是,您必须将SpecArray初始化为数组,而不是作为包含3个数组的对象。我已经看到了许多不以这种方式创建数组的示例。创建此数组的正确方法是什么?@EvikJames只需使用var SpecArray=[];而不是SpecArray={Height:[],Width:[],Length:[]};。除了上次的警报呼叫之外,你的代码应该很好。非常感谢!我只是无法让我的大脑以正确的方式思考这个问题。我感谢你的时间和知识。你能澄清一下吗?但是,您必须将SpecArray初始化为数组,而不是作为包含3个数组的对象。我已经看到了许多不以这种方式创建数组的示例。创建此数组的正确方法是什么?@EvikJames只需使用var SpecArray=[];而不是SpecArray={Height:[],Width:[],Length:[]};。除了上次的警报呼叫之外,你的代码应该很好。非常感谢!我只是无法让我的大脑以正确的方式思考这个问题。我感谢您的时间和知识。如果您不在客户端修改数据,实现这一点的另一种可能方法是在查询中使用序列化JSON并将其发送到客户端以及HTML表示。这样,您就不必刮取DOM以便稍后发送回数据。诚然,序列化查询的形式可能不正确,但我认为CF会将其转换回服务器上的查询对象,这可能很方便。如果您不在客户端修改数据,另一种可能的实现方法是在查询上使用SerializeJSON并将其发送到客户端,以及HTML表示。这样,您就不必刮取DOM以便稍后发送回数据。诚然,序列化查询的形式可能不正确,但我认为CF会将其转换回服务器上的查询对象,这可能很方便。