Javascript 为什么不等于if语句在所有情况下都返回true,即使也有false值?

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

函数-2数组:costPrice&productAndQty-尝试在productAndQty中搜索相同类型的所有产品代码,并返回成本价格列表

/**
 * 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
。这是否回答了您的问题?