,你可以这样做:价值分配到阵列中的JavaScript
$key1 = 1;
$key2 = 1;
$array[$key1][$key2] = 'hi';
在JavaScript中,我试图用这样的:
key1 = 1;
key2 = 1;
var array = new Array();
array[key1][key2] = 'hi';
,但它没有工作。我怎么能在JavaScript中做同样的事情?
,你可以这样做:价值分配到阵列中的JavaScript
$key1 = 1;
$key2 = 1;
$array[$key1][$key2] = 'hi';
在JavaScript中,我试图用这样的:
key1 = 1;
key2 = 1;
var array = new Array();
array[key1][key2] = 'hi';
,但它没有工作。我怎么能在JavaScript中做同样的事情?
你的问题是,你需要在它
var key1 = 1;
var key2 = 1;
var array = [];
array[key1]=[];
array[key1][key2] = 'hi';
或者你可以做到这一切在一个指定值之前实例内阵列:
var array=[['hi']]
此外,你应该避免分配给除非你正在更新现有的元素。第一个例子以上将会被自动添加元素
array[0]=undefined;
如果要使用特定的键,而不是仅仅索引,你应该使用词典或对象(字典和对象是同一个东西我的JavaScript)
key1
数组的属性在您尝试将属性key2
指定给它时未定义。在开始为其分配值之前,您需要实际指示array[key1]
是一个数组。
例如:
array[key1] = [];
array[key1][key2] = 'hi';
你可以找到整洁的实现。例如,here是一种方法,这是一个功能产生用于行,然后阵列,创建一个数组为每列(可在其它方式anidated,但是...)
var sDataArray=MultiDimensionalArray(7,2);
//alert(sDataArray[0][0]);
function MultiDimensionalArray(iRows,iCols)
{
var i;
var j;
var a = new Array(iRows);
for (i=0; i < iRows; i++)
{
a[i] = new Array(iCols);
for (j=0; j < iCols; j++)
{
a[i][j] = "";
}
}
return(a);
}
事情是,你就是不能像PHP那样工作。必须以他们真正的方式对待它们:数组(数组(数组(数组))的数组。 祝你好运。
JavaScript与key1
和key2
的尺寸未定义有关。要解决此问题,这些都是变化,你可以做:
var key1 = 1;
var key2 = 1;
// define "array" as an empty array:
var array = [];
// define "array[key1] as an empty array inside that array
// (your second dimension):
array[key1] = [];
array[key1][key2] = 'hi';
PHP确实有些神奇的 - 你可以简单地提供2个键和PHP“知道你是什么意思”,将定义$key1
和$key2
尺寸,而不考虑它。请参阅:PHP: arrays:如果$ arr尚不存在,它将被创建,所以这也是创建数组的另一种方法。要更改某个值,请使用其键为该元素指定一个新值。
JavaScript要求您更清楚地了解数组创建。
什么var array = []和var array = new Array()之间的区别? – ajsie
没有区别。 – elzapp