[英]assigning value to array in javascript
在PHP中,你可以这样做:
$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相同)
尝试将属性key2
分配给它时,数组的key1
属性未定义。 在开始为它分配值之前,您需要实际指示array[key1]
是一个数组。
例如:
array[key1] = [];
array[key1][key2] = 'hi';
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:数组 : 如果$ arr还不存在,它将被创建,因此这也是创建数组的另一种方法。 要更改某个值,请使用其键为该元素分配一个新值。
JavaScript要求您更明确地说明数组的创建。
您可以找到整洁的实现。 例如, 这是一种方法,该函数是为行创建一个数组,然后为每一列创建一个数组的函数(可以用另一种方式进行注释,但是...)
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那样处理数组。 必须按照它们的真实方式对待它们:数组(数组(数组(数组(数组)...))。 祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.