javascript - 功能未通过 3 项测试中的 2 项

标签 javascript

我正在帮助一位 friend 编写一个函数,该函数将采用一串空格分隔的单词并返回最长的单词,但我的代码在用于检查它的 3 个测试中失败了 2 个。

这些是测试:

describe("test for longest function functionality", function() {
  it("should return correct output for normal strings", function() {
    expect(longest("A")).toEqual("A");
    expect(longest("I love Avatar")).toEqual("Avatar");
    expect(longest("The stupidities of youth")).toEqual("stupidities");
  });

  it("should return correct output for gibberish", function() {
    expect(longest("hgdydrxtfEq Rradsc tstsa taeWwwec fgdd")).toEqual("hgdydrxtfEq");
  });

  it("should work for sentences with numbers", function() {
    expect(longest("This is a sentence with a number 7685838788")).toEqual("7685838788");
  });
});

这是我到目前为止的解决方案:

function longest(str) {
  var longestStart = 0;
  var longestEnd = 0;
  var current = 0;
  var currentLength = 0;
  while (current < str.length) {
    if (str.charAt(current) == ' ') {
      if (currentLength > (longestEnd - longestStart)) {
        longestStart = (current - currentLength);
        longestEnd = current;
      }
      currentLength = 0;
    } else {
      currentLength++;
    }
    current++;
  }
  return str.substring(longestStart, longestEnd);
}

最佳答案

就我个人而言,我会通过像这样的函数来做到这一点:

function longestSubstring(stringToSplit) {
  var arrayOfStrings = stringToSplit.split(" ");

  var longestString = arrayOfStrings[0];

  for (var i = 0; i < arrayOfStrings.length; i++) {
    if (longestString.length < arrayOfStrings[i].length) {
      longestString = arrayOfStrings[i];
    }
  }

  console.log(longestString);
}

longestSubstring("Hello my friend");
longestSubstring("1 12 123 1234 12345");
longestSubstring("aaaaaaah hello yell");

关于javascript - 功能未通过 3 项测试中的 2 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420569/

相关文章:

javascript - 在 Vue 中删除一个对象,从子对象发射到父对象,再到父对象

javascript - 如何在淡入后立即重复显示当前时间?

javascript - 从 Angularjs Controller 和服务的 for 循环中调用多个 $http 服务 javascript Promise 问题

javascript - 将 JavaScript 函数设置为与另一个函数一起使用的参数?

JavaScript 验证表单不起作用

javascript - JointJS 端口不起作用

javascript - 使用 Angular 将 Firestore 数据放入数组中

javascript - 如何转义此 URL 中的字符

javascript - ES6使用requestanimationframe的递归方法

javascript - 如何循环遍历 javascript 中的 XML 节点?