你的陣列是infoData
,這將是這樣的:
[
[ A2, B2, C2, D2, E2 ], // infoData[0]
[ A3, B3, C3, D3, E3 ], // infoData[1]
...
[ A22, B2, C22, D22, E22 ] // infoData[20]
]
您的循環通過infoData [0]的元素逐列,尋找匹配location
的j
。這看起來很奇怪。通常情況下,我們希望「記錄」在行中,其值爲location
,出現在特定列中。
如果確實location
爲A
,或在陣列中列0,那麼你正在尋找的循環將是:
var newUserInfo = [];
for (var row=0; row<infoData.length; ++row){
if (location == infoData[row][0]);{
// Found matching location; get info for new user
for (var col=1; col<infoData[row].length; ++col) {
newUserInfo.push(infoData[row][col]);
}
break; // Exit after copying the matching row
}
}
if (newUserInfo.length > 0) {
// Now, the newUserInfo array contains the data that was
// to the RIGHT of the location column.
destSheet.getRange(destSheet.lastRow()+1,1,1,newUserInfo.length).setValues([newUserInfo]);
}
編輯:更新的代碼...現在搜索將退出一旦匹配行已被找到,其數據已被複制到newUserData
,這被視爲一個數組。在搜索循環之後,可以將複製的值寫入目標工作表 - 在此示例中,假定它們作爲工作表底部的新行添加。
我很抱歉沒有提供有關該項目的更多詳情。 @Mogsdad你是正確的,位置在A.我試圖複製匹配「位置」行的B,C,D的數據。然後,該數據將被粘貼到另一個工作表中。 – dericcain
另外,在變量++ i之前遞增和在它之後遞增有什麼區別? – dericcain
這裏使用它的方式,不管你是預先還是後期增量都沒有區別。 – Mogsdad