Просто для ясности вы хотите, чтобы он повернул 'the last emperor'
на 'The Last Emperor'
, а не на 'the Last Emperor'
, верно?
Если это так, я бы предложил вам добавить второй параметр карты , который является индексом (для получения дополнительной информации см. документ MDNs об Array.map () ), потому что тогда вы можете просто добавить проверку, является ли это первой позицией или нет.
Ваш фрагмент будет выглядеть так:
const movieTitleFormatter = title => {
if(!title) {
return '';
}
let arr = [];
let excludeWords = ['of', 'the']
arr = title.split(' ');
return arr.map((word, i) =>
{
return excludeWords.includes(word) && i > 0 ? [word] : word.charAt(0).toUpperCase() + word.slice(1);
}).join(' ');
}
console.log(movieTitleFormatter('psycho'));
console.log(movieTitleFormatter('silence of the lambs'));
console.log(movieTitleFormatter('the last emperor'));
console.log(movieTitleFormatter());
Это должно делать то, что вы хотите, но я бы рекомендовал использовать RegEx для чего-то подобного.