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