Какие плюсы и минусы в выполнении манипуляций с этими способами? - PullRequest
1 голос
/ 22 апреля 2019

Я делаю очень простую задачу по кодированию. Вернуть каждую n-ю строчку строки. И, прежде чем это будет помечено как дубликат, у меня уже есть несколько решений. И я знаю, что в программировании есть много способов достичь того же результата. Но мне было интересно, есть ли какая-либо большая разница с точки зрения логики, читаемости или просто синтаксиса в целом для следующих решений. Что будет считаться выгодным решением? В этом примере я делаю каждые три. Если у вас есть лучшее решение, я хотел бы увидеть.

function testcode(str){
  let newstr = '';
  for (let i=2; i<str.length; i+=3) {
      newstr += str[i]
  }
  return newstr;
}
testcode('hellostackoverflow');

function testcode(str){
  let newstr='';
  for (let i=0; i<str.length; i++) {
      if ((i+1)%3 === 0){
        newstr += str[i];
      }
  }
  return newstr;
}

testcode('hellostackoverflow');

Я тоже попробовал способ регулярных выражений, но он не заменяет символы, если их не совсем 3.

let str = "aaCaaCaaCaa";

let result = str.replace(/..(.)/g, "$1");
console.log(result);
//gives me CCCaa

1 Ответ

0 голосов
/ 22 апреля 2019

Какое решение будет считаться выгодным?

Ваше первое.Это просто, как логически, так и синтаксически, что приводит к высокой читабельности.

И, возможно, более важно, это также более эффективно: для этого требуется всего O(n/k) шагов (где k=3 в вашем примере), смотря толькона каждый третий индекс / символ вместо каждого (O(n)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...