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
所指出的,你应该使用对象而不是数组。