#javascript #string
#javascript #строка
Вопрос:
let str = "advanced frontend developer";
function reverseString(str) {
let data = str.split(' ');
let array = [];
data.forEach((element,index)=>{
array.push(data[(data.length-1)-index])
});
console.log(...array)
}
console.log(reverseString(str));
У меня есть следующее выше, чтобы изменить строку, есть ли лучший способ, чем этот? пожалуйста, дайте мне знать.
Извините, я забыл упомянуть одну вещь при использовании функции reverse()
Комментарии:
1. один из способов — просто выполнить итерацию по строке в обратном порядке, используя
for
цикл и толькоconsole.log
каждый символ.2. да, для этого я использую forEach.
Ответ №1:
Просто reverse
результат split
и воссоединение:
console.log("advanced frontend developer".split(" ").reverse().join(" "));
// want to use a loop?
const str = "advanced frontend developer".split(" ");
let i = str.length, result = [];
while (i--) {
result.push(str[i]);
}
console.log(result.join(" "));
Используя функцию, вы должны вернуть результат:
const initialStr = "advanced frontend developer";
console.log(reverseStr(initialStr));
function reverseStr(str) {
return str.split(" ").reverse().join(" ");
}
// or as arrow function
let reverseStrArrow = str => str.split(" ").reverse().join(" ");
console.log(reverseStrArrow(initialStr));
Вы можете сделать это настолько сложным, насколько захотите. Здесь два дополнительных решения цикла
const str = "advanced frontend developer";
console.log(anotherReversalLoop(str));
console.log(anotherReversalLoop2(str));
// use array to store intermediate results
function anotherReversalLoop(str) {
let result = [];
let strTmp = "";
for (let i = 0; i < str.length; i = 1) {
if (str[i] === " ") {
result.unshift(strTmp);
strTmp = "";
} else {
strTmp = str[i];
}
}
if (strTmp.length) {
result.unshift(strTmp);
}
return result.join(" ");
}
// use string to store intermediate results
function anotherReversalLoop2(str) {
let strResult = "";
let strTmp = "";
for (let i = 0; i < str.length; i = 1) {
if (str[i] === " ") {
strResult = `${strTmp} ${strResult}`;
strTmp = "";
} else {
strTmp = str[i];
}
}
if (strTmp.length) {
strResult = `${strTmp} ${strResult}`;
}
return strResu<
}
Комментарии:
1. ups, вывод выполняется повторно в течение дня, сначала я увидел разделение, revesrse join с разделением мысли в пространстве …, так что легко вернуть мой голос обратно 🙂
2. без использования функций reverse() и join() мы должны это реализовать. теперь я обновил вопрос.
3. @ArunkumarSubramani Первый фрагмент в ответе содержит циклическое решение (
while
)
Ответ №2:
Использование цепочки методов javascript делает это намного проще. Проверьте приведенный ниже код.
let str = "advanced frontend developer";
const reverseStr = str.split(' ').reverse().join(' ');
console.log(reverseStr); // developer frontend advanced
Комментарии:
1.без использования функций reverse() и join() мы должны это реализовать. теперь я обновил вопрос.