Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何汇总javascript对象的值?_Javascript_Arrays - Fatal编程技术网

如何汇总javascript对象的值?

如何汇总javascript对象的值?,javascript,arrays,Javascript,Arrays,我在一个数组中有以下值,我试图得到它的和。这就是chrome开发者工具的外观 (3) [{…}, {…}, {…}]0: {ID: 1, ProductName: " New phone 1", Price: "€ 600"}1: {ID: 3, ProductName: " New phone 2", Price: "€ 1000"}2: {ID: 4, ProductName: " New phone

我在一个数组中有以下值,我试图得到它的和。这就是chrome开发者工具的外观

(3) [{…}, {…}, {…}]0: {ID: 1, ProductName: " New phone 1", Price: "€ 600"}1: {ID: 3, ProductName: " New phone 2", Price: "€ 1000"}2: {ID: 4, ProductName: " New phone 3", Price: "€ 400"}length: 3__proto__: Array(0)
我想得到每种商品的价格,并计算出所有价值的总和。我从Api中获取这些值,有时可能是更多项或更少项。目前,这就是我获取值的方式

function setTotalPrice() {
    fetch("http://localhost:1234/api/Product")
        .then(response=>response.json())
        .then(data => {
            data.forEach(element => {
                console.log(element.Price)
            });
        })
}

您需要从
Price
字符串()中获取数字,并使用

const数据=[
{ID:1,产品名称:'新手机1',价格:''600欧元'},
{ID:3,产品名称:'New phone 2',价格:'1000欧元'},
{ID:4,产品名称:'New phone 3',价格:'400欧元'},
];
const result=data.reduce((acc,val)=>acc+parseInt(val.Price.split(“”)[1],10),0);
控制台日志(结果);

控制台日志(“€”+结果)
您需要从
价格
字符串()中获取数字,并使用

const数据=[
{ID:1,产品名称:'新手机1',价格:''600欧元'},
{ID:3,产品名称:'New phone 2',价格:'1000欧元'},
{ID:4,产品名称:'New phone 3',价格:'400欧元'},
];
const result=data.reduce((acc,val)=>acc+parseInt(val.Price.split(“”)[1],10),0);
控制台日志(结果);

控制台日志(“€”+结果)
您可以使用
reduce
和一点regex
/\d+/

let数据=[
{id:1,产品:'phone 1',价格:'400欧元'},
{id:3,产品:'phone 2',价格:'3000欧元'},
{id:4,产品:'phone 3',价格:'600欧元'},
];
设sum=data.reduce((a,{price})=>a+Number(price.match(/\d+/)),0);

控制台日志(总和)
您可以使用
reduce
和一点regex
/\d+/

let数据=[
{id:1,产品:'phone 1',价格:'400欧元'},
{id:3,产品:'phone 2',价格:'3000欧元'},
{id:4,产品:'phone 3',价格:'600欧元'},
];
设sum=data.reduce((a,{price})=>a+Number(price.match(/\d+/)),0);

控制台日志(总和)为什么不parseFloat?为什么不parseFloat?
const sum = data
  .map(({ price }) => {
    const digitsStartIndex = price.substring(price.findIndex(' ') + 1);
    return parseFloat(digitsStartIndex, 10)
  })
  .reduce((a, b) => a + b, 0)
console.log(`€ ${sum}`)