如何在字符串的单词中反向字符,但要保持单词顺序?

问题描述 投票:0回答:19
                
function reverseInPlace(str) { var words = []; words = str.split("\s+"); var result = ""; for (var i = 0; i < words.length; i++) { return result += words[i].split('').reverse().join(''); } } console.log(reverseInPlace("abd fhe kdj"))

我期望的是
dba ehf jdk
,而我到达这里的是
jdk fhe dba

。有什么问题?
javascript string reverse in-place
19个回答
11
投票

该功能应该为您工作:
function myFunction(string) {
    return string.split("").reverse().join("").split(" ").reverse().join(" ")
};

6
投票

您需要将字符串划分为空间

function reverseInPlace(str) {
  var words = [];
  words = str.match(/\S+/g);
  var result = "";
  for (var i = 0; i < words.length; i++) {
     result += words[i].split('').reverse().join('') + " ";
  }
  return result
}
console.log(reverseInPlace("abd fhe kdj"))


6
投票

Split

首先将字符串变成单词,然后再逆转单个单词
var input = "abd fhe kdj";
var output = input.split( " " ).map(  //split into words and iterate via map
     s => s.split("").reverse().join( "" )  //split individual words into characters and then reverse the array of character and join it back
).join( " " ); //join the individual words

1
投票

如果您看起来像这样的O/P:“ JavaScript是最好的” =>“最好的是JavaScript”

可以通过简单的逻辑来完成

//sample string let str1 = "Javascript is Best"; //breaking into array let str1WordArr = str1.split(" "); //temp array to hold the reverse string let reverseWord=[]; //can iterate the loop backward for(let i=(str1WordArr.length)-1;i>=0;i--) { //pushing the reverse of words into new array reverseWord.push(str1WordArr[i]); } //join the words array console.log(reverseWord.join(" ")); //Best is Javascript
    

1
投票

const reverseWordIntoString = str => str.split(" ").map(word => word.split("").reverse().join('')).join(" ") const longString = "My name is Vivekanand Panda"; const sentence = "I love to code"; const output = { [longString]: reverseWordIntoString(longString), [sentence]: reverseWordIntoString(sentence) } console.log(output);


0
投票
split

map
函数来创建反向单词。
您需要首先使用
sentence

分开

space

,然后您只需扭转每个单词并再次加入反转单词。


function reverseWord (sentence) { return sentence.split(' ').map(function(word) { return word.split('').reverse().join(''); }).join(' '); } console.log(reverseWord("abd fhe kdj"));


    
this this解决方案

推出了whitespaces字符

空间

0
投票
,tab

\t,新行\n

和托架返回
\r
),并保留了它们的订单(未反转):

const sentence = "abd\t fhe kdj"; function reverseWords(sentence) { return sentence .split(/(\s+)/) .map(word => /^\s+$/.test(word) ? word : word.split('').reverse().join('')) .join(''); } console.log(reverseWords(sentence));

    
您可以通过以下代码轻松实现这一目标


0
投票

function reverseWords(str) { // Go for it let reversed; let newArray=[]; reversed = str.split(" "); for(var i = 0;i<reversed.length; i++) { newArray.push(reversed[i].split("").reverse().join("")); } return newArray.join(" "); } let reversedString = reverseWords("This is an example!"); console.log("This is the reversed string : ",reversedString);


唯一的错误是进行分裂时,您可以做类似的事情:

function reverseInPlace(str) { var words = []; words = str.split(" "); console.log(words); var result = ""; for (var i = 0; i < words.length; i++) { result += words[i].split('').reverse().join('') +" "; } return result } console.log(reverseInPlace("abd fhe kdj"))


0
投票

->将字符串分为单词

str.split(" ")
 - >映射每个单词并分为每个字符
.map(word => word.split("")

0
投票

.map(word => word.split("").reverse().join("")


const str = "abd fhe kdj";

const reverseWord = str => {
  let reversed = "";
  reversed = str.split(" ").map(word => word.split("").reverse().join("")).join(" ")
  
  
  return reversed
}

console.log(reverseWord(str));


对于现在研究这个问题的人,请考虑您的应用程序是否不需要处理标点符号(例如不移动标点符号)或翻转连字词的单词(例如,办理登机手续应该是ni-kcehc或kcehc-ni?) .

例如:


0
投票
“无知是幸福吗?!”真的应该是“ ecnarongi si!?ssilb”?

“旋转木马”应该是“ dnuor-og-yyrem”或“ yrrem-og-dnuor”?

以下解决方案不会移动标点符号,也不会翻转连字符的单词:

    /** * 1. Split "non letters" * 2. Reverse each piece * 3. Join the pieces again, replacing them by " " * 4. Split all characters * 5. Replace " " by the original text char */ function reverseWords(text) { return text.split(/[^A-Za-zÀ-ÿ]/g) .map(w => w.split("").reverse().join("")) .join(" ") .split("") .map((char, i) => char === " " ? text[i] : char) .join("") }
  • function reverse(str) { var rev = str.split("").map(word => word.split("").reverse().join("")).join(" ") return rev } console.log(reverse("soumya prakash")); // aymuos hsakarp


0
投票
function reverseInPlace(str) {
  var words = [];
  words = str.match(/\S+/g);
  var result = "";
  for (var i = 0; i < words.length; i++) {
     result += words[i].split('').reverse().join('') + " ";
  }
  return result
}
console.log(reverseInPlace("abd fhe kdj"))

0
投票

reverseStringBywords = (str) =>{
  let rev = ""
  str.split(" ").forEach(s =>{ 
      rev = rev + s.split("").reverse().join("") + " " 
  })
  return  rev
}
console.log("reverseStringBywords ", reverseByWord("JavaScript is awesome"));

let reverseOfWords = (words) =>{ _words = words.split(" ").map(word => word.split('').reverse().join("")) console.log("reverse of words ", _words.join(' ')) } reverseofWords("hello how are you ")


0
投票
尝试这个反向的()。
这可以用于“反向整个字符串”和“反向每个单词”。

0
投票
function reverseString(string, separator) {
  return string.split(separator).reverse().join(separator);
}

const str = "See the magic of javaScript"

const reverseWholeString = reverseString(str, "");
console.log("Reverse the whole string ->", reverseWholeString);

const reverseEachWord = reverseString(reverseWholeString, " ");
console.log("Reverse each word ->", reverseEachWord);

0
投票

没有使用构建方法,用于循环
const mainString = "this is test hey";
const splitedString = mainString.split(" ");
let string = "";
let word = "";
let result = "";
for (let i=0;i<splitedString.length;i++){
   word = splitedString[i];
   for(let j=0;j<word.length;j++){
       string = word[j] + string;
       if (word.length - 1 === j) {
           word = "";
          result = result + " " + string;
          string = ""
       }
   }
}
console.log(result)

LETmsg =“欢迎来到新泽西”;

0
投票
LETreversemsg = msg.split(“”).map(w => w.split(“”)。rectervers()。recters()。join(''))。join('');

console.log(reverseMsg);
    

0
投票

let s = "getting good at coding needs a lot of practice" let b = s.split(" ").reverse().join(" ") console.log(b)


0
投票

如果您想通过Word扭转字符串: 示例:“欢迎来到javascript”来“ javaScript 您也可以做类似的事情:
var str = 'Welcome to JavaScript'
function reverseByWord(s){
  return s.split(" ").reverse().join(" ");
}

// Note: There is space in split() and Join() method

reverseByWord(str)
// output will be - JavaScript to Welcome

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.