Javascript 设置jquery多维数组

Javascript 设置jquery多维数组,javascript,jquery,multidimensional-array,Javascript,Jquery,Multidimensional Array,我得到属性值。我需要设置为多维数组,但它显示错误。我哪里出错了 var myArray = []; amount=10; x=1 $(id).closest('td').nextAll().find('input').each(function (n) { myArray[x]['id'] = $(this).attr('data-id'); myArray[x]['year'] = $(this).attr('data-year'); myAr

我得到属性值。我需要设置为多维数组,但它显示错误。我哪里出错了

var myArray = [];
amount=10;
x=1
$(id).closest('td').nextAll().find('input').each(function (n) {

        myArray[x]['id'] = $(this).attr('data-id');
        myArray[x]['year'] = $(this).attr('data-year');
        myArray[x]['month'] = $(this).attr('data-month');
        myArray[x]['amount'] = amount;

        x++;
});
console.log(myArray);

你漏了这一行

myArray[x] = {};
myArray[x]['id'] = $(this).attr('data-id');
在这条线之前

myArray[x] = {};
myArray[x]['id'] = $(this).attr('data-id');

因为在设置属性之前需要先初始化该对象。

需要先声明数组才能添加项。比如说

var d = [];
var value = 2;
d[0]["key"] = value;
无法工作,因为
d[0]
还不是数组。但是:

var d = [];
var value = 2;
d[0]= [];
d[0]["key"] = value;
将工作,因为
d[0]
已准备好接受密钥

就你而言

>>> myArray[x] = [];
myArray[x]['id'] = $(this).attr('data-id');
myArray[x]['year'] = $(this).attr('data-year');
myArray[x]['month'] = $(this).attr('data-month');
myArray[x]['amount'] = amount;

将起作用。

即使已将数组初始化为空数组,也应在paritcular位置初始化值。如果不指定,则myArray[x]未定义。因此,您需要显式分配一个空对象,以便使用myArray[x][“key”]更新键

var myArray=[];
金额=10;
x=1
$(id).最近('td').nextAll().find('input').each(函数(n){
//需要使用对象a位置x初始化;
myArray[x]={};
myArray[x]['id']=$(this.attr('data-id');
myArray[x]['year']=$(this.attr('data-year');
myArray[x]['month']=$(this.attr('data-month');
myArray[x]['amount']=金额;
x++;
});
log(myArray)
的可能重复项