Javascript 如何在一组对象中进行数学运算?

Javascript 如何在一组对象中进行数学运算?,javascript,arrays,object,math,Javascript,Arrays,Object,Math,我想计算totalPrice中的qty*price,它给了我“qty未定义”,我该怎么做 let products = [ { title: "Sunglasses", imgURL: "images/Products/sunglasses.jpg", desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut nulla adipisci fug

我想计算
totalPrice
中的
qty*price
,它给了我“qty未定义”,我该怎么做

let products = [
{
    title: "Sunglasses",
    imgURL: "images/Products/sunglasses.jpg",
    desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut nulla adipisci fugiat pariatur recusandae repudiandae fuga molestias doloremque itaque obcaecati.",
    price:80,
    qty:1,
    totalPrice: qty * price,
    id: 1
}]
它应该是一个购物车,因此
数量
会发生变化,我希望
总价
在对象中,因为我假设将购物车中所有产品的
总价
放在一起,得到整个购物车的总价

您可以使用:

const产品=[
{
标题:“太阳镜”,
imgURL:“图像/产品/太阳镜.jpg”,
描述:“知识产权或权利属于社会精英,但不属于社会精英。”,
价格:80,
数量:1,
身份证号码:1
}
];
const res=products.map(product=>
({…产品,总价:product.qty*product.price})
);
控制台日志(res)您可以使用:

const产品=[
{
标题:“太阳镜”,
imgURL:“图像/产品/太阳镜.jpg”,
描述:“知识产权或权利属于社会精英,但不属于社会精英。”,
价格:80,
数量:1,
身份证号码:1
}
];
const res=products.map(product=>
({…产品,总价:product.qty*product.price})
);
控制台日志(res)您引用的是变量(不存在),而不是属性

有几种方法可以解决这个问题。例如,您可以在第二步中添加总价:

let products = [
{
    title: "Sunglasses",
    imgURL: "images/Products/sunglasses.jpg",
    desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut nulla adipisci fugiat pariatur recusandae repudiandae fuga molestias doloremque itaque obcaecati.",
    price:80,
    qty:1,
    id: 1
}]

for (let product of products) product.totalPrice = product.qty * product.price;
或者,您可以使用getter动态计算它:

let products = [
{
    title: "Sunglasses",
    imgURL: "images/Products/sunglasses.jpg",
    desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut nulla adipisci fugiat pariatur recusandae repudiandae fuga molestias doloremque itaque obcaecati.",
    price:80,
    qty:1,
    get totalPrice() { return this.qty * this.price },
    id: 1
}]
您引用的是变量(不存在),而不是属性

有几种方法可以解决这个问题。例如,您可以在第二步中添加总价:

let products = [
{
    title: "Sunglasses",
    imgURL: "images/Products/sunglasses.jpg",
    desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut nulla adipisci fugiat pariatur recusandae repudiandae fuga molestias doloremque itaque obcaecati.",
    price:80,
    qty:1,
    id: 1
}]

for (let product of products) product.totalPrice = product.qty * product.price;
或者,您可以使用getter动态计算它:

let products = [
{
    title: "Sunglasses",
    imgURL: "images/Products/sunglasses.jpg",
    desc: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut nulla adipisci fugiat pariatur recusandae repudiandae fuga molestias doloremque itaque obcaecati.",
    price:80,
    qty:1,
    get totalPrice() { return this.qty * this.price },
    id: 1
}]

为什么不
totalPrice:1*80
80
1
从哪里来。。。在数据库记录中使用诸如
totalPrice
之类的字段是没有意义的。。。它只占用存储空间,并且可以使用query@MrUpsidown它应该是一个购物车,所以
数量
会发生变化,我希望
总价
在对象中,因为我假设将购物车中所有产品的
总价
放在一起,得到两辆车的总价到目前为止,答案是肯定的。有没有反馈给他们?“…将购物车中所有产品的总价放在一起,得到整个购物车的总价”怎么样
const totalCart=products.reduce((sum,{qty,price})=>sum+qty*price,0)这就是不需要对象上的这些属性就可以获得购物车总价的简单方法。特别是像购物车这样动态的东西,我会避免存储冗余数据。太简单了,
quaty*price
totalPrice
不同步,而且我觉得用getter来处理那些琐碎的事情太过分了。为什么不
totalPrice:1*80
?80
1
来自哪里。。。在数据库记录中使用诸如
totalPrice
之类的字段是没有意义的。。。它只占用存储空间,并且可以使用query@MrUpsidown它应该是一个购物车,所以
数量
会发生变化,我希望
总价
在对象中,因为我假设将购物车中所有产品的
总价
放在一起,得到两辆车的总价到目前为止,答案是肯定的。有没有反馈给他们?“…将购物车中所有产品的总价放在一起,得到整个购物车的总价”怎么样
const totalCart=products.reduce((sum,{qty,price})=>sum+qty*price,0)这就是不需要对象上的这些属性就可以获得购物车总价的简单方法。特别是像购物车这样动态的东西,我会避免存储冗余数据。这太简单了,
qty*price
totalPrice
不同步,而且我觉得用getter来处理那些琐碎的事情太过分了。