If statement 如果在Google应用程序脚本中未检测到Else条件
我在列表“res_1”上循环,当Id为“400”时,需要将“Total_Weight”与变量“cost_400”相乘;否则,如果id为“400W”,则需要乘以“总重量” 具有可变“成本_400W”。最后,“结果”数组应该包含“供应商”和相应的编码(“总重量”*“成本400”) 在下面的代码中,我循环了“res_1”,但由于某种原因,没有检测到if条件,它也没有进入相应的if或else if条件。 如有任何建议,将不胜感激 预期结果:If statement 如果在Google应用程序脚本中未检测到Else条件,if-statement,google-apps-script,If Statement,Google Apps Script,我在列表“res_1”上循环,当Id为“400”时,需要将“Total_Weight”与变量“cost_400”相乘;否则,如果id为“400W”,则需要乘以“总重量” 具有可变“成本_400W”。最后,“结果”数组应该包含“供应商”和相应的编码(“总重量”*“成本400”) 在下面的代码中,我循环了“res_1”,但由于某种原因,没有检测到if条件,它也没有进入相应的if或else if条件。 如有任何建议,将不胜感激 预期结果: result = [['ABC',42341820 ],['D
result = [['ABC',42341820 ],['DEF',91734000]]
输入:
res_1:
[ { Id: '400 ', Vendor: 'ABC', Total_Weight: 32322 },
{ Id: '400W ', Vendor: 'DEF', Total_Weight: 61156 } ]
var cost_400 = 1310
var cost_400W = 1500
res_1.forEach((r2,i2)=>{
if (r2['Id'] == "400" ) {
Logger.log(r2['Total_Weight']*cost_400)
}
else if (r2['Id'] == "400W" ) {
Logger.log(r2['Total_Weight']*cost_400W)
}
});
问题:
if(r2['Id']=“400”)
和if(r2['Id']=“400W”)
将始终为false,因为'400'
不等于'400'
,'400W'
不等于'400W'
String.match()
并反转If-else语句。反转的原因是String.match(400)
可以捕获400
和400W
,如果我们从String.match('400W')开始,我们可以阻止该方法捕获400
function myFunction() {
var res_1=
[ { Id: '400 ', Vendor: 'ABC', Total_Weight: 32322 },
{ Id: '400W ', Vendor: 'DEF', Total_Weight: 61156 } ]
var cost_400 = 1310
var cost_400W = 1500
res_1.forEach((r2,i2)=>{
if (r2['Id'].match("400W")) {
Logger.log(r2['Total_Weight']*cost_400W)
}
else if (r2['Id'].match("400")) {
Logger.log(r2['Total_Weight']*cost_400)
}
});
}
输出:
参考资料:
res_1=[{Id:'400',供应商:'ABC',总重量:32322},{Id:'400W',供应商:'DEF',总重量:61156}]代码>?每个Id的末尾似乎有一个空格。