Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 - Fatal编程技术网

Javascript 将一个数组推入另一个数组?

Javascript 将一个数组推入另一个数组?,javascript,Javascript,我有一个数组: var fileMetaData = []; 在一个循环中,我希望将内容推送到阵列: $('#gallery-manager-add-form .galleryImage').each(function(){ fileMetaData.push(myTestArray); }); 用于测试myTestArray的是: var myTestArray = new Array(2); myTestArray['a'] = 'foo'; myTestArray['b']

我有一个数组:

var fileMetaData = [];
在一个循环中,我希望将内容推送到阵列:

$('#gallery-manager-add-form .galleryImage').each(function(){

    fileMetaData.push(myTestArray);
});
用于测试myTestArray的是:

var myTestArray = new Array(2);
myTestArray['a'] = 'foo';
myTestArray['b'] = 'bar';
问题是,当我得到数组的内容时,它只是一个逗号(,)


你知道我哪里出错了吗?

那是因为你混淆了数组和对象(你应该使用它们)

如果您的钥匙是
'a'
'b'
,请使用

var myTestArray = {};
myTestArray['a'] = 'foo';
myTestArray['b'] = 'bar';
如果确实要使用数组,请使用

var myTestArray = [];
myTestArray.push('foo'); // no explicit key 
myTestArray.push('bar');

您看到的只是一个逗号,因为数组的标准表示形式不查找属性,所以您打印的是等价的
[[],[]].toString()
,即
,“

,这是因为您混淆了数组和对象(应该使用它们)

如果您的钥匙是
'a'
'b'
,请使用

var myTestArray = {};
myTestArray['a'] = 'foo';
myTestArray['b'] = 'bar';
如果确实要使用数组,请使用

var myTestArray = [];
myTestArray.push('foo'); // no explicit key 
myTestArray.push('bar');

您看到的只是一个逗号,因为数组的标准表示形式不查找属性,所以您打印的是等价的
[[],[]]。toString()
,即
,“

数组使用数字键。你用了“a”和“b”

按如下方式初始化:

var myTestArray = ['foo', 'bar'];
或者,使用此选项保持代码几乎相同:

var myTestArray = new Array(2);
myTestArray[0] = 'foo';
myTestArray[1] = 'bar';

数组使用数字键。你用了“a”和“b”

按如下方式初始化:

var myTestArray = ['foo', 'bar'];
或者,使用此选项保持代码几乎相同:

var myTestArray = new Array(2);
myTestArray[0] = 'foo';
myTestArray[1] = 'bar';

当您将值分配给
myTestArray['a']
myTestArray['b']
时,您不是将它们推入数组,而是将值分配给对象的属性。要将项目视为数组中的值,您需要使用整数索引,或者只需推送它们:

myTestArray[0] = 'foo';
myTestArray.push('bar');

但是,另一部分,您正在推入
文件元数据
数组-如果您试图从
myTestArray
推入这两个项目,则需要以不同的方式进行操作-如果您将一个数组推入另一个数组,则是推入数组,而不是项目。您需要一次循环一个,然后按这种方式推送它们,或者使用类似于
concat
的方法来合并数组。

当您将值分配给
myTestArray['a']
myTestArray['b']
时,您不是将它们推送到数组中,而是将值分配给对象的属性。要将项目视为数组中的值,您需要使用整数索引,或者只需推送它们:

myTestArray[0] = 'foo';
myTestArray.push('bar');
但是,另一部分,您正在推入
文件元数据
数组-如果您试图从
myTestArray
推入这两个项目,则需要以不同的方式进行操作-如果您将一个数组推入另一个数组,则是推入数组,而不是项目。您需要一次循环一个数组,然后将它们按这种方式推送,或者使用类似于
concat
的方法来合并数组。

这应该可以

$('#gallery-manager-add-form .galleryImage').each(function(){

    fileMetaData.push(myTestArray[0],myTestArray[1]);

});
一维阵列

二维阵列 这应该行得通

$('#gallery-manager-add-form .galleryImage').each(function(){

    fileMetaData.push(myTestArray[0],myTestArray[1]);

});
一维阵列

二维阵列

我已经做了两个JSFIDLE演示,其中一个是你想要的…但是正如
dystroy
所指出的,你应该使用对象而不是数组。我已经做了两个JSFIDLE演示,其中一个是你想要的…但是正如
dystroy
所指出的,你应该使用对象而不是数组。