如何循环通过下面的多维数组?通过多维数组循环
我创建数组是这样的:
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