假设我有一个包含表情的列表:
List<String> _emojiesList = ['☹️','','','','',''];假设有6个人从这个列表中选择了一个表情符号:
person 1 - ☹️
person 2 -
person 3 -
person 4 - ☹️
person 5 - ☹️
person 6 - im试图显示那些表情符号的等价物.
我知道如何计算平均价值:
avg = indexOfEmoji*numberOfSelected / totalNumberOfPeople
so:
☹️ - 3
- 2
- 1(0 *3+1*2+2* 1) /6= 4/6 =0.667循环()=1
问题是,第一个表情符号的指数为0。
似乎找不到解决这个问题的办法。我只需要印上这张照片。
发布于 2021-04-12 12:18:11
在用户审查之后。将单击表情符号的索引添加到列表中。
[0, 1, 2, 3, 4, 5] // The list will look something like this然后计算平均值
var avg = ( reviewedList.reduce((a, b) => a + b) / reviewedList.length ).round();
print(_emojiesList[avg]);发布于 2021-04-12 11:44:29
我假设所有6个表情符号的权重(或点数)从1到6不等。
在这种情况下,可以在计算平均值时将数组索引数增加1:
avg = (indexOfEmoji+1)*numberOfSelected / totalNumberOfPeople在这种情况下,你会得到,
(1 * 3 + 2 * 2 + 3 * 1) / 6 = 4/6 = 1.667发布于 2021-04-12 11:50:29
第一个表情符号乘以0并不重要。然而,正确的结果出来了,即指数的平均值。应该是那样的。
如果你想要第一个表情符号有重量1,那么你所要做的就是把最后的分数提高1。
https://stackoverflow.com/questions/67057628
复制相似问题