부모 배열과 자식 배열을 만들고 나중에 각 부모 배열에 자식 배열을 설정하려고합니다. 여기 Javascript는 다른 배열 요소의 속성으로 배열을 배열합니다.
코드이다var parent = [];
var child = [];
// Set kids
for (a = 0; a <= 5; a++) {
child[a] = [];
child[a].name = "kid " + a;
}
// Set parents and their kids
for (b = 0; b < 2; b++) {
parent[b] = [];
parent[b].name = "parent " + b;
parent[b].kids = child;
}
// One parent has kid name anna
parent[0].kids[2].name = "anna";
// Output
for (a = 0; a < 2; a++) {
console.log("");
for (b = 0; b < 5; b++) {
console.log(b + " -> " + parent[a].name + " " + parent[a].kids[b].name);
}
}
먼저 상위
0 -> 부모 0 아이 0
1 -> 부모 0 아이 1
2 -> 부모 0 안나
3 -> 부모 0 아이 3
4 -> 부모 0 아이 4
번째 상위
0 -> 상위 1 아이 0
1 -> 상위 1 명 아이 1
2 -> 상위 1 안나
3 -> 상위 1 명 아이 3
4 -> 상위 1 아이
4 이유는 두 부모가 한 아이의 이름 애나을 가져야 만 먼저 같은 아이들이 어떻게, 그리고 더 중요한 것은 어떻게 제대로 작동하도록 만들 수 있습니까?
. 모든 .kids 속성을 동일한'child' 배열로 설정했기 때문에. 객체와 배열은 JS가 아닌 참조에 의해 전달됩니다. 또한 parent {b] = []; 대신 새 parentent/child 즉'parent [b] = {};에 대한 배열이 아닌 객체를 만들고 싶을 것입니다. –
'parent [b] .kids = child;'. 따라서 모든 '종류'는 '자식'객체와 동일한 객체 참조입니다. – dfsq