Правильное ли это решение? Есть ли более оптимальное?
Есть массив с именами:
const names = ['vLadiMir', 'MaRk', 'LoGAn', 'VicTOr', 'mAks', 'KaTe', 'AlEx'];
for (let i = 0; i < names.length; i++) {
names[i] = names[i].toLowerCase();
names[i] = names[i][0] + names[i][1] + names[i][2].toUpperCase() + names[i].slice(3)
console.log(names[i]);
}
Задача: все символы должны быть в нижнем регистре, кроме 3-го, подскажите правильная ли это реализация? Либо можно оптимизировать?
И 2-й вопрос, как быть если нужно сделать upperCase для каждой 3-го символа, т.е для 3-го, 6-го, 9-го и т.д
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
Можно сделать так еще, но не сказал бы, что это более оптимизировано. Просто выглядит получше.
А ответ на второй вопрос, добавляем переменную i - индекс, буква под которым должна быть в аперкейсе.
const i = 2;
const names = ['vLadiMir', 'MaRk', 'LoGAn', 'VicTOr', 'mAks', 'KaTe', 'AlEx']
.map(e => e.slice(0, i).toLowerCase() + e[i].toUpperCase() + e.slice(i + 1).toLowerCase());
console.log(names);
Либо так, если хотим несколько букв:
const i = [2, 4];
const names = ['vLadiMir', 'MaRk', 'LoGAn', 'VicTOr', 'mAks', 'KaTe', 'AlEx']
.map(e => {
const out = [...e.toLowerCase()];
for (const j of i) {
if (out.length > j) out[j] = out[j].toUpperCase();
}
return out.join('');
});
console.log(names);
