我想编写自己的方法来逆转字符串。Mystr.VerverseString应该将其返回。我不想在我的命令末尾使用括号,例如 myStr.reverseString()
String.prototype.reverseString(){ // This line need to be changed
return String.split("").reverse().join(""); // This line need to be changed
}
let myStr = "Hello World!"
console.log(myStr.reverseString); // Should expected "!dlroW olleH"
我认为您可以使用DefineProperty。
为了不使用((,您需要在string.protoype上定义一个getter。
您的代码应遵循步骤:
- split((
- 反向((
- join((
最后,您将拥有类似的东西:
Object.defineProperty(String.prototype, 'reverseString', { get() { return this.split('').reverse().join(''); } })
let myStr = "Hello World!"
console.log(myStr.reverseString); // Should expected "!dlroW olleH"
[更新]尽管这是这个问题的答案,但在这样做时要小心。请阅读:为什么将本地对象扩展不良习惯?
[更新2]正如@ivan Castellanos所说,此方法对以下复杂字符串不起作用:👩👩👧👦。/a/16776621/800817
好的,请尝试一下,这将对您有所帮助。
Object.defineProperty(String.prototype, 'reverse', { get() {
// Step 1. Use the split() method to return a new array
var splitString = this.split(""); // var splitString = "hello".split("");
// ["h", "e", "l", "l", "o"]
// Step 2. Use the reverse() method to reverse the new created array
var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();
// ["o", "l", "l", "e", "h"]
// Step 3. Use the join() method to join all elements of the array into a string
var joinArray = reverseArray.join(""); // var joinArray = ["o", "l", "l", "e", "h"].join("");
// "olleh"
//Step 4. Return the reversed string
return joinArray; } })
var x = 'Friday call peter parker';
console.log(x.reverse);