需要将函数中的参数作为对象键推送到数组

时间:2016-12-09 04:48:46

标签: javascript arrays object

我有这个功能的问题我正在写作。

function addToCart(item) {
  let price = Math.floor(Math.random() * 100 + 1);
  cart.push({ item: price });
  console.log(`${item} has been added to your cart.`);
  return cart;
};

当我查看我的购物车阵列中存储的内容时,它有"项目:32"例如,而不是作为参数传递的项目名称。

1 个答案:

答案 0 :(得分:3)

更改

cart.push({ item: price });

var temp = {};
temp[item] = price;
cart.push(temp);

在声明对象后,在temp对象上创建一个新属性。

如果您可以使用 ES6 ,那么只需

cart.push({ [item]: price })

这将在创建对象时评估变量item。在ES5中,您不能将变量用作对象文字中的属性名称。