如何用字符串的单个单词反向字符?

问题描述 投票:0回答:20
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
20个回答
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);

您可以利用

split

0
投票
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字符
空间

,tab

0
投票
,新行

\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));

If you want to reverse a string by word:
Example: 'Welcome to JavaScript' to 'JavaScript to Welcome'

You can also do something like:
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

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


0
投票


0
投票

唯一的错误是进行分裂时,您可以做类似的事情:
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("")
 - >分别扭转每个单词并加入IT

0
投票


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?) .
例如:

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

0
投票

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

/** * 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
投票


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 =“欢迎来到新泽西”;

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

0
投票
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
投票

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