【问题标题】:Pushing an array of object with a function使用函数推送对象数组
【发布时间】:2021-08-21 13:44:01
【问题描述】:

不应该将参数(产品和数量)替换为参数(“面包”和5)并成为对象键吗?相反,参数在对象值中,我很困惑不是参数只是参数的占位符吗?

const cart = [];

 const addtoCart = function (product, quantity) {
  cart.push({ product, quantity });
  
};

addtoCart('bread', 5);
console.log(cart); //returns {"product": "bread","quantity": 5}

【问题讨论】:

  • 它们被替换了。您的代码正在做它应该做的事情;你期待什么? cart.push({ product, quantity }); 表示 cart.push({product: product, quantity: quantity}); — 换句话说,它创建一个对象,其属性名称和值取自参数名称及其值。
  • 推送函数内的代码是这个{ product: product, quantity: quantity }的简写
  • 我期待 {"bread": undefined,"5": undefined}
  • 您的预期不正确。参见上面的 cmets。
  • 你想要cart.push({ [product]: quantity });吗?

标签: javascript arrays javascript-objects


【解决方案1】:

您需要将密钥括在方括号和冒号之后

cart.push({ [product]: quantity });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多