首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算来自list<String>的avarage

计算来自list<String>的avarage
EN

Stack Overflow用户
提问于 2021-04-12 11:34:02
回答 4查看 45关注 0票数 0

假设我有一个包含表情的列表:

代码语言:javascript
复制
List<String> _emojiesList = ['☹️','','','','',''];

假设有6个人从这个列表中选择了一个表情符号:

代码语言:javascript
复制
person 1 - ☹️
person 2 - 
person 3 - 
person 4 - ☹️
person 5 - ☹️
person 6 - 

im试图显示那些表情符号的等价物.

我知道如何计算平均价值:

avg = indexOfEmoji*numberOfSelected / totalNumberOfPeople

代码语言:javascript
复制
so: 
☹️ - 3 
 - 2
 - 1

(0 *3+1*2+2* 1) /6= 4/6 =0.667循环()=1

问题是,第一个表情符号的指数为0

似乎找不到解决这个问题的办法。我只需要印上这张照片。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-04-12 12:18:11

在用户审查之后。将单击表情符号的索引添加到列表中。

代码语言:javascript
复制
[0, 1, 2, 3, 4, 5] // The list will look something like this

然后计算平均值

代码语言:javascript
复制
var avg = ( reviewedList.reduce((a, b) => a + b) / reviewedList.length ).round();
print(_emojiesList[avg]);
票数 1
EN

Stack Overflow用户

发布于 2021-04-12 11:44:29

我假设所有6个表情符号的权重(或点数)从1到6不等。

在这种情况下,可以在计算平均值时将数组索引数增加1:

代码语言:javascript
复制
avg = (indexOfEmoji+1)*numberOfSelected / totalNumberOfPeople

在这种情况下,你会得到,

代码语言:javascript
复制
(1 * 3 + 2 * 2 + 3 * 1) / 6 = 4/6 = 1.667
票数 1
EN

Stack Overflow用户

发布于 2021-04-12 11:50:29

第一个表情符号乘以0并不重要。然而,正确的结果出来了,即指数的平均值。应该是那样的。

如果你想要第一个表情符号有重量1,那么你所要做的就是把最后的分数提高1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67057628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档