これは愚かな質問かもしれないので、私は合理的にコーディングしていますが、forループを使用してオブジェクトの複数のインスタンスを作成しようとしていますそのうち日付は1日増分されます。私の問題は、オブジェクトのすべてのインスタンスは、最終的な反復の日付値と同じ日付値をとることです。私はいくつかの検索を行い、1つの答えは、日付を追跡するために使用していた変数が静的であるように見えました。それが私の問題なのか、それとも本当にどのように解決するのかわからないので、どんな助けでも大歓迎です。私は私のコードの特定のインスタンスに二回ループする必要があるためオブジェクト内に同じ値として格納されているすべての増分データ値JavaScript
//getMonday is a function that returns the first day of the week from a given d
var TestObject = function(date) {
this.date = date;
}
function dateTest() {
var today = new Date();
var contents = [];
var orderDate = new Date(getMonday(today));
var j = 0;
for(var k = 1; k<6; k++) {
for(var i = 0; i<6; i++) {
contents[j] = new TestObject(orderDate);
Logger.log("filling in contents[" + j + "]. I'm putting in date: " + orderDate);
j++;
}
orderDate.setDate(orderDate.getDate() + 1);
}
for(var i = 0; i < contents.length; i++) {
Logger.log(contents[i]);
}
}
は、2つのループがあり、それはspreadhseetから値を取り除き、行数が変化したときのみ、日付をインクリメントします。
forループ内のログは、すべての正しい日付を出力しますが、dateTestオブジェクトがすべて出力されると、最終的な日付の繰り返しがすべて含まれます。
ブリリアント。ありがとうございました。それはとてもシンプルなものでした。実際にJavaScriptがどのように機能するかについて、非常に重要な教訓を教えてくれました。 –