javascript获取喜欢和不喜欢的百分比

问题描述

我有好恶,我试图找出两者的百分比。 问题是有时候没有好恶,所以我无法计算。 第二个问题是&&运算符不起作用。

.menu ul{ 
display: inline-flex; 
margin: 50px; 
font-family: 'Staatliches',cursive; 
font-size: 25px; 
} 
.menu ul li{ 
list-style: none; 
margin: 0 20px; 
color: #1385d6;
cursor: pointer; }

有任何解决方案可以解决吗?

解决方法

您可以将代码缩小为检查相同的值,包括两个零值和另一个用于计算百分比值的

if (likes === dislikes) {
    setLikePercentage(50);
    setDislikePercentage(50);
} else {
    setLikePercentage((likes / (dislikes + likes)) * 100);
    setDislikePercentage((dislikes / (dislikes + likes)) * 100);
}
,

您可以通过以下一般假设来简化事情:如果likesdislikes都是相同的值,则它们都是50%。在所有其他情况下,您只想运行计算。

这样,您可以摆脱前3条if/else if语句。我还假设likesdislikes永远不会小于0。

/**
* Main Calcation
*/
const doCalculation = (likes,dislikes) => {
  likes = likes && likes > 0 ? likes : 0;
  dislikes = dislikes && dislikes > 0 ? dislikes : 0;
  if (likes === dislikes) { return { likes: 50,dislikes: 50 }; }
  const total = likes + dislikes;
  return {
    likes: (likes / total) * 100,dislikes: (dislikes / total) * 100
  };
};

/**
* For event handling/presentation purposes
*/
const calculateLikes = () => {
  const likes = document.getElementById('likes').value
  const dislikes = document.getElementById('dislikes').value
  const result = doCalculation(+likes,+dislikes);
  document.getElementById('results').innerHTML = `
    <div>Likes: ${result.likes}%</div>
    Dislikes: ${result.dislikes}%
  `;
};

// Events
document.getElementById('likes').addEventListener( 'keyup',calculateLikes );
document.getElementById('dislikes').addEventListener( 'keyup',calculateLikes );
<input placeholder="likes" id="likes" />
<input placeholder="dislikes" id="dislikes" />

<div id="results"></div>

,

在您的if条件之前,添加这两行;

//check null status
likes = likes || 0;
dislikes = dislikes || 0;

if (likes == 0 && dislike == 0) {
...

||是布尔OR运算符。与javascript中一样,undefined,null,false被视为虚假值。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...