如何循環通過下面的多維數組?通過多維數組循環
我創建數組是這樣的:
var _cQueue = [[]];
和添加項目是這樣的:
var valueToPush = new Array();
valueToPush['[email protected]'] = '1234567';
_cQueue.push(valueToPush);
我通過添加了所有不同的電子郵件不會忽略,然後每個隨機字符串要循環與電子郵件
任何想法有關?
如何循環通過下面的多維數組?通過多維數組循環
我創建數組是這樣的:
var _cQueue = [[]];
和添加項目是這樣的:
var valueToPush = new Array();
valueToPush['[email protected]'] = '1234567';
_cQueue.push(valueToPush);
我通過添加了所有不同的電子郵件不會忽略,然後每個隨機字符串要循環與電子郵件
任何想法有關?
首先,你不應該的關鍵元素添加到數組,但對象。這意味着你的全局對象應建立:
var _cQueue = [];
var valueToPush = {}; // this isn't an array but a js object used as map
valueToPush['[email protected]'] = '1234567';
_cQueue.push(valueToPush);
然後,你遍歷採用兩種循環:
for (var i=0; i<_cQueue.length; i++) { // iterate on the array
var obj = _cQueue[i];
for (var key in obj) { // iterate on object properties
var value = obj[key];
console.log(value);
}
}
見MDN的優秀Working with objects。
如果你想找到相關聯的ID的郵件,你可以做兩件事情:
1)循環,直到你找到它:
function find(id) {
for (var i=0; i<_cQueue.length; i++) { // iterate on the array
var obj = _cQueue[i];
for (var key in obj) { // iterate on object properties
var value = obj[key];
if (value==id) return key;
}
}
}
2)把所有的IDS在一張地圖,這樣可以更快地發現:
var bigMap = {};
for (var i=0; i<_cQueue.length; i++) { // iterate on the array
var obj = _cQueue[i];
for (var key in obj) { // iterate on object properties
bigMap[obj[key]] = key; // maps the id to the email
}
}
function find(id) {
return bigMap[id];
}
使用了,在這兩個級別:
for(var val in _cQueue){
var obj = _cQueue[val];
for(var val1 in obj){
alert('key(email):' + val1 + '\nValue:' + obj[val1]);
}
}
http://stackoverflow.com/questions/4909218/placing-a-multi-dimensional-array-into-javascript-from-php-using-json ...從這個答案中看到,你應該得到它 – theshadowmonkey 2013-03-20 13:56:11