2017-08-21 6 views
2

Ich habe etwas Code, der die Daten von einem Google-Blatt abruft. Ich durchlaufe diese Daten dann nach Daten, die nur dem heutigen Datum entsprechen. Ich möchte diese Werte dann in ein anderes Blatt einfügen. Ich verstehe wahrscheinlich nicht, wie genau 2D-Arrays funktionieren ... Unten ist, was ich bisher habe. Ich kenne meine Schleife, um zu finden, dass nur die heutigen Einträge funktionieren. Nicht sicher, was ich falsch mache. Jede Hilfe würde sehr geschätzt werden. Die Variable n gibt die korrekte Anzahl der Zeilen zurück, die sich im Array befinden sollen. Die Zeilen- und Spaltenanzahl ist jedoch nicht korrekt. Das Blatt, das ich Daten FROM lese, hat 4 Spalten. Ich brauche nur 3 von ihnen.2D-Array-Probleme in Google Scripts/JavaScript

var ss = SpreadsheetApp.getActive(); 
var sheet = ss.getSheetByName('Edit Info'); 
var rows = sheet.getDataRange(); 
var values = rows.getValues(); 

Logger.log(values.length) 
Logger.log(values[0].length) 

var todayValues = []; 
var todValues = ""; 
var rowValues = []; 

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1; //January is 0! 
var yyyy = today.getFullYear(); 

if(dd<10) { 
dd = '0'+dd 
} 

if(mm<10) { 
mm = '0'+mm 
} 

today = mm + "/" + dd + "/" + yyyy; 
Logger.log("Today: " + today) 
var n = 1; 
for(var i = 1; i < values.length; i++) { 
var formattedDate = values[i][0]; 
var newDate = Utilities.formatDate(new Date(formattedDate), "GMT-6", 
"MM/dd/yyyy"); 
//Logger.log("NewDate: "+newDate) 
if(newDate == today){ 

    //todValues += values[j][0] + "," + values[i][3] + "," + values[i][2]; 
    todayValues.push(values[i][0], values[i][3], values[i][2]); 
    n = n + 1 
    Logger.log(values[i][0] + ", " + values[i][3] + ", " + values[i][2]) 
} 
} 

Logger.log("N Row Count: " + n) //How many times the date was actually 
found 
Logger.log("Rows: " + todayValues.length) 
Logger.log ("Columns: " + todayValues[0].length) 

Antwort

0

Haben Sie die Debug-Option im Skript-Editor verwendet. Siehe die Troubleshooting page für den Einsatz, wenn Sie nicht haben. Es ist einfacher als die Protokolle zu verwenden.

Wenn Sie dies tun, sollten Sie feststellen, dass Ihre abgerufenen Daten, die in Werten gespeichert sind, sich von den in todayValues ​​gespeicherten Daten unterscheiden. Vereinfacht wird es etwa so sein:

values [["A", "B", "C"],["D", "E", "F"]] 
todayValues ["A", "B", "C","D", "E", "F"] 

Beachten Sie die zusätzlichen eckigen Klammern in den Werten.

Sie möchten den Code in der Schleife

todayValues.push([values[i][0], values[i][3], values[i][2]]); 
+0

Danke zu lesen! Das hat den Trick gemacht. Es machte meinen Code, um ein anderes Blattwerk zu füllen. :) –