В чем проблема в этом простом коде js? - PullRequest
0 голосов
/ 15 декабря 2018

Мне интересно, в чем проблема с этим простым кодом.Я делаю функцию, где мне нужно получить длину самого короткого слова в строке.Я знаю, что могу найти эту функцию где угодно, но,

, почему мой не работает?

function findShort(s){
    var arr = s.split(" ");
    var out = 1000;
    for (var i = 0; i < arr.length-1; i++){
          if (arr[i] <= out){
              out = arr[i].length;
          }
    }
    return out;
}

Вышеприведенная функция вместо этого возвращает 1000.

Ответы [ 3 ]

0 голосов
/ 15 декабря 2018

Ваша проблема в том, что когда вы сравниваете строки в javascript, он не использует их длину.Вы должны использовать атрибут "length" строки, как в фиксированном коде ниже.Также вы должны сохранить результат, чтобы выдать результат

function findShort(s){
    var arr = s.split(" ");
    var comp = 1000;
    var out = "";
    for (var i = 0; i < arr.length-1; i++){
          if (arr[i].length <= comp){
              comp = arr[i].length;
              out = arr[i];
          }
    }
    return out;
}

Проблема все еще существует, если вы хотите, чтобы массив возвращался со всеми самыми короткими словами (одинаковой длины).Вы можете добавить еще один оператор if и сделать так, чтобы оно добавляло слово в массив, когда оно было одинаковой длины, и очищать его, когда было найдено более короткое.

0 голосов
/ 15 декабря 2018

попробуйте это.

    function findShort(){
        s = "sample test try";
        var arr = s.split(" ");
        var out = 1000;
        for (var i = 0; i < arr.length; i++){
            if (arr[i].length <= out){
                out = arr[i].length;
            }
        }
        return out;
    }
    alert(findShort());
0 голосов
/ 15 декабря 2018

Вам необходимо сравнить длину каждого слова (arr[i].length), а не каждое слово (arr[i]), с самой короткой длиной.

function findShort(s){
    var arr = s.split(" ");
    var out = 1000;
    for (var i = 0; i < arr.length-1; i++){
          if (arr[i].length <= out){ // <-- here!
              out = arr[i].length;
          }
    }
    return out;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...