我有一个数组的数组,我希望能够在每次用户点击添加按钮时向数组添加值。
var transactions = [];
transactions[0] = []; // holds date
transactions[1] = []; // holds transaction type
transactions[2] = []; // holds amount
transactions[0][i] = $("date").value;
transactions[1][i] = $("transType").value;
transactions[2][i] = parseFloat( $("amount").value);
这些是片段…我意识到我需要进行验证(我将这样做),此时我更关心的是加载数组。问题是我熟悉的方法与一维数组的工作,我不知道如何替换它。
简而言之,是否可以复制这个:
transactions[transactions.length] = $("date").value;
表示多维数组。
谢谢
使用push
:
transactions[0].push( $("date").value );
您正在寻找Array.push()方法。它允许你将值压入数组的末尾。
对于您的用例,您可以在数组的两个级别上都这样做。见下文:
var transactions = [];
transactions.push([]);
transactions.push([]);
transactions[0].push( $('date').value );
使用相同的方法是没有问题的:
transactions[0][transactions[0].length] = $("date").value;
或push
法:
transactions[0].push($("date").value);
…请记住,您已经用空数组[]
初始化了transactions[0]
。
是的,只是多维的idem
transactions[0][transactions[0].length] = var1;
你这样做似乎有点奇怪:
[[array of transaction dates],[array of transaction types],[array of transaction amounts]]
你确定你不需要
[array of transactions, with date,type,amount properties]
?
var transactions = [];
transactions.push({'date': $("date").value, 'type': $("transType").value, 'amount': parseFloat( $("amount").value)});
var i = 0;
alert('date ' + transactions[i].date + ' type ' + transactions[i].type + ' amount ' + transactions[i].amount);