React JS获取数组中数字的总和

Posted

技术标签:

【中文标题】React JS获取数组中数字的总和【英文标题】:React JS Get Sum of Numbers in Array 【发布时间】:2020-10-03 02:27:49 【问题描述】:

我有这个数组

const data = [
  "One",prix:100,
  "Two",prix:200,
  "Three",prix:300
]

我想像这样得到所有prix 的总和:

sum = 600

【问题讨论】:

您的数组中的对象无效。另外,到目前为止,您尝试了哪些方法,遇到了哪些问题? 是的,每个对象都有一个键值对 reduce() 对数组的每个元素执行一个函数,产生单个输出值。 【参考方案1】:

您可以使用reduce

data.reduce((a,v) =>  a = a + v.prix , 0 )

const data = [
  title : "One",prix:100,
  title : "Two",prix:200,
  title : "Three",prix:300
]

console.log((data.reduce((a,v) =>  a = a + v.prix , 0 )))

【讨论】:

【参考方案2】:

reduce() 方法对数组的每个元素执行(您提供的)reducer 函数,从而产生单个输出值。

arr.reduce(callback, initialValue);

reducer 将只返回一个值和一个值,因此名称为 reduce。回调是为数组中的每个元素运行的函数。

和函数参数function(total,currentValue, index,arr):

Argument           Description

total              Required.The initialValue, or the previously returned value of the function
currentValue       Required.The value of the current element
currentIndex       Optional.The array index of the current element
arr                Optional.The array object the current element belongs to

在这个例子中使用这个代码:

const data = [
  title:"One",prix:100,
  title:"Two",prix:200,
  title:"Three",prix:300
];

const result = data.reduce((total, currentValue) => total = total + currentValue.prix,0);

console.log(result);  // 600

【讨论】:

【参考方案3】:
const sum = data.map(datum => datum.prix).reduce((a, b) => a + b)

【讨论】:

那么为什么使用地图你可以像这样减少和添加data.reduce((a, b) => a + b.prix,0) 分离 mapreduce 更加模块化并且不需要初始化器 (0)。使用此功能的子集/超集重构为转换器或其他功能也更容易。

以上是关于React JS获取数组中数字的总和的主要内容,如果未能解决你的问题,请参考以下文章

获取总和为X的数组的数字列表[重复]

为什么我在尝试获取数字总和时得到NaN

获取数组内的数组总和

C函数使用加法和减法获取数组的所有总和

在 Dart 中获取集合/列表中数字总和的最简洁方法是啥?

检查数组中两个不同数字的总和是不是等于变量数?