簡體   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