繁体   English   中英

我在 javascript 中使用算术运算符时遇到问题

[英]I am having trouble using arthimetic operators in javascript

我正在做一项作业,必须拿一个 10 字的字符串并决定它属于哪个类别。 字符串可以是任何东西,它必须由 3 个类别定义: 1. Cat。 A - 字符串的正文,其中一半以上的单词为 4 个字符或更少 2. Cat。 B - 弦体既不是猫。 A 或猫。 C 3. 目录。 C - 超过一半的单词为 7 个字符或更多字符的字符串正文

我遇到的问题是不知道要使用哪些变量和运算符来开始剖析原始字符串。 如果有人可以给出我应该做的步骤列表,我将能够完成它。

这是我到目前为止的工作:

var sentence = "The quick brown fox jumps over the lazy dogs tomorrow";

var sentenceSplit = sentence.split(" ");


sentenceSplit[0];
sentenceSplit[1];
sentenceSplit[2];
sentenceSplit[3];
sentenceSplit[4];
sentenceSplit[5];
sentenceSplit[6];
sentenceSplit[7];
sentenceSplit[8];
sentenceSplit[9];

if (sentenceSplit[0].length <= 4 || sentenceSplit[1].length <= 4 || sentenceSplit[2].length <= 4 || sentenceSplit[3].length <= 4 || sentenceSplit[4].length <= 4 
   || sentenceSplit[5].length <= 4 || sentenceSplit[6].length <= 4 || sentenceSplit[7].length <= 4 || sentenceSplit[8].length <= 4 || sentenceSplit[9].length <= 4) {
    print ("good"); 
}else{
    print ("bad"); 
}

你可以试试...

在下面的情况下。 平均变量为您提供平均字长。

var resultEl = document.getElementById("results"),
sentence = "The quick brown fox jumps over the lazy dogs tomorrow",
lengths = []

var sentenceSplit = sentence.split(" ");

sentenceSplit.forEach(addToTotal);
function addToTotal(element)
{
    lengths.push(element.length);
}

var aboveFour = lengths.filter(word => word > 4),
aboveSeven = lengths.filter(word => word > 7),
category = "";

if (Math.floor(aboveFour.length) >= Math.floor(sentenceSplit.length / 2)) {
    category = "A";
}
else if (Math.floor(aboveSeven.length) >= Math.floor(sentenceSplit.length / 2)) {
    category = "C";
}
else {
    category = "B";
}

在这类问题中,最好使用 for 循环而不是凌乱的 if 语句,它很容易实现如下:

      let catAindicator = 0;
      let catBindicator = 0;
      let catCindicator = 0;

     for (let item of sentenceSplit) {

            if (item.length <= 4) {
                console.log(item + " is Cat A");
                catAindicator++;
            } else if (item.length >= 7) {
                console.log(item + " is Cat C");
                catCindicator++;
            } else {
                console.log(item + " is Cat B");
                catBindicator++;
            }

        }

        console.log(catAindicator); //count of cat A words
        console.log(catCindicator); //count of cat C words
        console.log(catBindicator); //count of cat B words

现在,您可以通过使用指示类别字符串计数的三个变量来简单地通过其子字符串的类别多数来评估字符串类别,例如catAindicator在第一个条件内增加为catAindicator++等等,然后比较它们并得到结果. 它会是这样的:

      if (catAindicator > catBindicator && catAindicator > catCindicator){
            console.log("String is Cat A");
      } else if (catCindicator > catAindicator && catCindicator > catBindicator){
            console.log("String is Cat C");
      } else {
            console.log("String is Cat B");
      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM