簡體   English   中英

如何在JavaScript中按索引訪問多維數組?

[英]How to access multidimensional array by index in javascript?

我在java-script中有一個像下面的數組

Result = [
  {"ID":1,"Type":"Pyramid","Phase":"One"},
  {"ID":2,"Type":"Pyramid","Phase":"Two"}
]

我嘗試訪問單個值,並能夠通過以下代碼

alert(Result[0].ID) or alert(Result[0].Phase)

有沒有辦法通過索引訪問它? 像Result [0] [1]一樣,我嘗試過但也得到[object] [object]我也需要訪問列數

請幫我

您具有對象數組,並且使用for循環可以輕松訪問所有元素值。

嘗試跟隨

  function getValue() {
   var keys ;
   var Result = [{"ID":1,"Type":"Pyramid","Phase":"One"},  {"ID":2,"Type":"Pyramid","Phase":"Two"}]                             
      for(var i=0; i<Result.length;i++){
          keys = [];
              for(var k in Result[i]){
                keys.push(k);
               }
          for(var k=0;k<keys.length;k++){
                console.log(keys[k]+"="+ Result[i][keys[k]]);
              }
            console.log("key count =" +keys.length);
           } 
     }

檢查一下

您的結果是一個對象數組,然后必須首先獲取一個對象,然后獲取該對象的屬性。 這不是多維數組。

來自https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

alert(Result[0][Object.keys(Result[0])[0]]);
  • Result[0]獲取第一行
  • Object.keys(Result[0])獲取第一行中的鍵
  • Object.keys(Result[0])[0]獲取第一列名稱。

Object.keys(Result[0]).length是第一行中的列數。

同樣,對象不像數組那樣基於線性整數索引來索引,因此將有序數字分配給鍵的無序列表是不正確的。

二維數組如下所示:

Result = [
  [1,"Pyramid","One"],
  {2,"Pyramid","Two"}
]

在這種情況下,您可以像這樣處理每個字段: Result[row][col]因此Result[0][2]將產生One

要訪問對象數組中的字段,請使用提供的語法。 另外,為什么要基於id訪問對象中的字段? 或者為什么不使用數組數組呢?

您的數組有一個對象,我們必須將該對象轉換為數組。 因此,將整個var Result轉換為newResult,就可以通過索引號訪問newResult及其組件

    Result = [
          {"ID":1,"Type":"Pyramid","Phase":"One"},
          {"ID":2,"Type":"Pyramid","Phase":"Two"}
        ];
        var newResult = [];
        for (var i = 0; i < Result.length; i++) {
            newResult[i] = [];
            for (var x in Result[i]) {
                 if (Result[i].hasOwnProperty(x)) {
                      newResult[i].push(Result[i][x]);  
                    }
            };
        };
        console.log(newResult);

使用newResult而不是Result

您可以通過newResult [0] [0]獲取ID

http://jsfiddle.net/LLz1cbok/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM