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

#javascript

#javascript

Вопрос:

Это имеет отношение к длине итерации, верно? Как мне повторить все это, кроме последнего индекса?

 function createSentence(words) {
 var sentence = "";
  for (var i = 0; i < words.length; i  ) {
    sentence  = words[i]   ' ';
    if (i === words.length - 1)
        return sentence  = '.';
    }
  }

var result1 = createSentence(['I', 'am', 'worth', 'it']);
console.log('should log "I am worth it.":', result1);

var result2 = createSentence(['My', 'problems', 'matter']);
console.log('should log "My problems matter.":', result2); 

Ответ №1:

Лучшая идея: объединить пробелом, а затем объединить один . в конец:

 const createSentence = arr => arr.join(' ')   '.';

var result1 = createSentence(['I', 'am', 'worth', 'it']);
console.log('should log "I am worth it.":', result1);

var result2 = createSentence(['My', 'problems', 'matter']);
console.log('should log "My problems matter.":', result2); 

Ответ №2:

Решение @CertainPerformance идеально.

Если вы хотите избежать использования join в образовательных целях, вы можете добавлять пробел только тогда, когда i не находится на последней позиции:

 function createSentence(words) {
 var sentence = "";
  for (var i = 0; i < words.length; i  ) {
    sentence  = words[i];
    if (i === words.length - 1) {
        return sentence  = '.';
    } else {
        sentence  = ' ';  // <---
    }
  }
}

var result1 = createSentence(['I', 'am', 'worth', 'it']);
console.log('should log "I am worth it.":', result1);

var result2 = createSentence(['My', 'problems', 'matter']);
console.log('should log "My problems matter.":', result2); 

Ответ №3:

Цикл не требуется. Просто соедините все элементы массива пробелом и добавьте a . в конец.

 function createSentence(words) {
 return words.join(" ")   ".";
}

console.log('should log "I am worth it.":', createSentence(['I', 'am', 'worth', 'it']));
console.log('should log "My problems matter.":', createSentence(['My', 'problems', 'matter']));