オブジェクトの配列に2つの属性を追加しようとしているので、元のオブジェクトから新しいオブジェクトの配列を作成してから、新しい属性を設定することにしました。(これを行うには、おそらくもっと簡単な方法があると思います。)
私の問題は、新しい配列内の属性にアクセスしようとすると、それが定義されていないことです。何が悪いのかはおそらく明らかですが、私にはわかりません。助けて!
var join = [];
for (linksIndex = 0; linksIndex < links.length; ++linksIndex) {
join.push([{source:links[linksIndex].source,target:links[linksIndex].target, x1:0, y1:0, x2:0, y2:0}]);
};
for (joinIndex = 0; joinIndex < join.length; ++joinIndex) {
// console.log("join in loop");console.log(join); // ok array of objects
// console.log("join[joinIndex]");console.log(join[joinIndex]); // on object
console.log("join[joinIndex].source");console.log(join[joinIndex].source); // undefined why?
for (nodesIndex = 0; nodesIndex < nodes.length; ++nodesIndex) {
if (nodes[nodesIndex].name == join[joinIndex].source) {
join[joinIndex].x1=nodes[nodesIndex].x; // match source
join[joinIndex].y1=nodes[nodesIndex].y; // match source
};
if (nodes[nodesIndex].name == join[joinIndex].target) {
join[joinIndex].x2=nodes[nodesIndex].x; // match target
join[joinIndex].y2=nodes[nodesIndex].y; // match target
} ;
}
}
オブジェクトを含む別の配列を配列にプッシュしています!
したがって、次のように変更すると、次のようになります。
join[joinIndex][0].source
それが動作します。しかし、私はこれがあなたが望むものではないと思います。したがって、join.push()を次のように変更します。
join.push({
source: links[linksIndex].source,
target: links[linksIndex].target,
x1: 0,
y1: 0,
x2: 0,
y2: 0
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加