繁体   English   中英

在javascript中将值分配给数组

[英]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存在数组未定义key1key2尺寸的问题。 要更正此问题,可以进行以下更改:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM