Javascript 为什么不等于if语句在所有情况下都返回true,即使也有false值?
函数-2数组:costPrice&productAndQty-尝试在productAndQty中搜索相同类型的所有产品代码,并返回成本价格列表Javascript 为什么不等于if语句在所有情况下都返回true,即使也有false值?,javascript,if-statement,google-apps-script,filter,Javascript,If Statement,Google Apps Script,Filter,函数-2数组:costPrice&productAndQty-尝试在productAndQty中搜索相同类型的所有产品代码,并返回成本价格列表 /** * productAndQty : subscription-id, productcode, s,m,l,xl * costprice: productcode, cp-s, cp-m ....... soo on! */ function getSupply(productAndQty,costPrice){ /**totalQt
/**
* productAndQty : subscription-id, productcode, s,m,l,xl
* costprice: productcode, cp-s, cp-m ....... soo on!
*/
function getSupply(productAndQty,costPrice){
/**totalQtyAsProduct is the final array */
var totalQtyAsProduct = [];
/**co[0] is product code */
costPrice.forEach(function(co){
var tempPQ = productAndQty.filter(function(po){
return po[1]==co[0];
});
c(tempPQ);
c(tempPQ!=[]);
if(tempPQ!=[]){
totalQtyAsProduct.push(calcSupply(tempPQ,costPrice));
}
});
return totalQtyAsProduct;
}
但是如果(tempq!=[])总是返回true;
当我使用console.log(tempq)时,有许多[]我不想传递给下一个函数
只需检查filter()返回的数组长度即可。空数组的长度为零,这是错误的
if(tempPQ.length)
对象永远不会相等,即使它们设置了相同的属性/值。数组是一种对象<代码>{}=={}//false和
[]=[]//false
。如果要查看数组是否为空,请选中.length
。这是否回答了您的问题?