配列に含まれるオブジェクトを循環させ、各オブジェクトのプロパティを変更したい。これを実行すると
for (var j = 0; j < myArray.length; j++){
console.log(myArray[j]);
}
コンソールは配列内のすべてのオブジェクトを表示するはずですよね?しかし、実際には最初のオブジェクトしか表示されません。ループの外で配列をコンソールに記録すると、すべてのオブジェクトが表示されるので、そこにはもっと多くのオブジェクトがあるはずです。
さて、ここからが次の問題です。ループを使って、配列中のObject1.xなどにアクセスするにはどうしたらいいでしょうか?
for (var j = 0; j < myArray.length; j++){
console.log(myArray[j.x]);
}
これは "undefined." を返します。 繰り返しますが、ループの外側のコンソールログでは、オブジェクトはすべて "x" の値を持っていることがわかります。ループの中でこれらのプロパティにアクセスするにはどうすればよいでしょうか?
他の場所では、それぞれのプロパティに別の配列を使うことを勧められましたが、まずこの方法を使い切ったかどうかを確認したいと思います。
ありがとうございました。
配列の組み込み関数であるforEachを使う。Array.forEach()
を参照してください。
yourArray.forEach(function (arrayItem) {
var x = arrayItem.prop1 + 2;
console.log(x);
});
myArray[j.x]`は論理的に正しくありません。
代わりに (myArray[j].x);
を使ってください。
for (var j = 0; j < myArray.length; j++){
console.log(myArray[j].x);
}