В приведенной ниже программе я сначала строю два массива: "a" и "b".Затем я пытаюсь добавить некоторые данные из "b" в "a".Таким образом, массив "a", который имеет 2 строки в начале, должен иметь 4 строки в конце.Хотя я получаю четыре строки, результат не совсем то, что я ожидал.Вот код:
function mytry(){
var b = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("A1:F2").getValues()
b.push(["1","a","b","c","d","e"])
b.push(["2","f","g","h","i","j"])
b.shift()
b.shift()
Logger.log("b.length "+b.length)
Logger.log("b "+b)
var a = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("A1:C1").getValues()
a.push(["100","A","B"])
a.push(["200","C","D"])
a.shift()
Logger.log("a.length "+a.length)
Logger.log("a "+a)
Logger.log(" ")
var temp=[]
for (ro = b.length-1; ro >= 0; ro--){
if (b[ro][5].toString() != "" ) {
Logger.log(ro)
temp[0]=b[ro][2];
temp[1]=b[ro][4];
temp[2]=b[ro][5];
Logger.log(temp)
a.push(temp)
Logger.log("a.length "+a.length)
Logger.log("a "+a)
}
}
}
Журнал для программы:
[18-10-08 06:09:37:807 EDT] b.length 2
[18-10-08 06:09:37:808 EDT] b 1,a,b,c,d,e,2,f,g,h,i,j
[18-10-08 06:09:37:811 EDT] a.length 2
[18-10-08 06:09:37:811 EDT] a 100,A,B,200,C,D
[18-10-08 06:09:37:812 EDT]
[18-10-08 06:09:37:813 EDT] 1.0
[18-10-08 06:09:37:813 EDT] [g, i, j]
[18-10-08 06:09:37:814 EDT] a.length 3
[18-10-08 06:09:37:815 EDT] a 100,A,B,200,C,D,g,i,j
[18-10-08 06:09:37:815 EDT] 0.0
[18-10-08 06:09:37:816 EDT] [b, d, e]
[18-10-08 06:09:37:816 EDT] a.length 4
[18-10-08 06:09:37:817 EDT] a 100,A,B,200,C,D,b,d,e,
В конце работы программы я ожидал, что массив "a" будет равен "100, A, B, 200, C, D, g, i, j, b, d, e "вместо" 100, A, B, 200, C, D, b, d, e, [blank] ".Я уже знаю несколько способов решения этой проблемы, поэтому мне не нужно решение.Скорее, я хочу понять, что происходит с массивами «temp» и «a», чтобы получить такой неожиданный (по крайней мере для меня) результат.Кто-нибудь может мне помочь, пожалуйста?