У меня есть JavaScript-литерал:
var members = {
"mother": {
"name" : "Mary",
"age" : "48",
"connection": {
"brother" : "sun"
}
},
"father": {
"name" : "Bill",
"age" : "50"
},
"brother": {
"name" : "Alex",
"age" : "28"
}
}
Чем у меня есть функция, которая должна читать соединения из литерала выше. Это выглядит так:
function findRelations(members){
var wires = new Array();
var count = 0;
for (n = 0; n < members.length; n++){
alert(members.length); // this alert is undefined
if (members[n].connection){
for (i = 0; i < members[n].connection[0].length; i++){
var mw = new Array();
var destination = 0;
for (m = 0; m < members.length; m ++){
if (members[m] == members[n].connection[0]){
destination = m;
mw = [n, destination];
wires [count] = mw;
count++;
}
}
}
}
}
return wires;
}
Однако, когда я запускаю эту функцию, я ничего не получаю. И первое предупреждение, которое помещается внутри функции, показывает «undefined» вообще.
findRelations(members);
alert("Found " + wires.length + " connections");
Полагаю, это из-за литерала JavaScript. Не могли бы вы предложить, как изменить функцию или, возможно, изменить литеральный массив на JSON, чтобы заставить его работать?