Google应用脚本如何从0减去数字

时间:2018-03-31 19:02:16

标签: javascript google-apps-script google-sheets

我使用此代码从另一列中减去一列但具有0的单元格保持不变。当一个单元格中有0而另一个是减法后为6时,它应为-6但是当出现0时此代码不执行减法。如何删除此问题

function subtractSoldBulk() {
var sheet = SpreadsheetApp.getActiveSheet();
var maxRows = sheet.getMaxRows();

var soldRange = sheet.getRange(2, 3, maxRows); // 
row, column, number of rows
var totalRange = sheet.getRange(2, 4, maxRows);

var soldValues = soldRange.getValues();
var totalValues = totalRange.getValues();
for (var row in soldValues) {
var soldCellData = soldValues[row][0];
var totalCellData = totalValues[row][0];

if (soldCellData != "" && totalCellData != "") {
  totalValues[row][0] = totalCellData - 
soldCellData;
  soldValues[row][0] = "";
}
}

soldRange.setValues(soldValues);
totalRange.setValues(totalValues);
}

1 个答案:

答案 0 :(得分:3)

JavaScript是一种奇怪的语言。看看下面的表达式评估的内容应该变得清晰:

enter image description here

请记住,JS引擎会尝试将两个操作数转换为单个类型(在本例中为数字)。空字符串的数值为'0',因此您的'if'语句表达式将计算为'false'。要避免这种情况,请使用严格比较'!=='。