如何循环循环直到找到一定数量?
-
09-10-2019 - |
题
我正在尝试为Google Docs电子表格编写一个简单的脚本。下面的两个链接是我正在编写脚本的床单的屏幕截图。
http://i.stack.imgur.com/ugik7.png
http://i.stack.imgur.com/abknq.png
在收购订单上,如果e ==“库存”,则我需要它来找到零件号并调整表“库存”中的数量。 Bellow是我想做的事情的开始。有人可以给我一只手吗?
function updateInventoryFromPurchaseOrders() {
var purchaseOrders = {}; // A mapping of partNumber => quantity.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Purchase Orders');
if (sheet) {
// For each row, if column "E" == "stock" then set partNumber, quantity.
purchaseOrders[partNumber] = quantity;
}
// Now purchaseOrders should look like {'SL249':5, 'ML50':1, 'MWF':1}
sheet = ss.getSheetByName('Inventory');
if (sheet) {
// For each row, set quantity, partNumber.
var purchased = purchaseOrders[partNumber];
// Set column "A" value = quantity + purchased
}
}
谢谢您的帮助。
解决方案
JavaScript不具有foreach - 有可能解决此问题的方法,包括自己实施机制。
如果这是一个曾经的修复,您将尽快迁移到其他一些语言 - 我建议以下内容:
for( var CurrentRow=0; CurrentRow < DetermineMaxRows(); CurrentRow++ ) {
if(isColumnEEqualStock()){
//Things you want to do
}
}
通过行和列迭代的东西...
如果您想实施自己的foreach,请看一下 这个 地点。
如果您打算扩大JavaScript工作,请考虑 链接文字.
否则,请考虑在Java中制作Applett并实现它们而不是脚本。
其他提示
如果您的库存标志和数量在同一张纸中,则可以在同一数组中获取整个内容(使用.getDatarange(),只需抓住所有内容),然后当您找到库存内容时,您可以只使用在该行中获取下一个索引。
var partNumbers = sheet.getDataRange().getValues();
for(num in partNumbers){
if(partNumbers[num][4] == 'stock'){ //
// Assuming quantity is in column F
purchaseOrders[partNumber] = partNumbers[num][5];
}
}
不隶属于 StackOverflow