<!DOCTYPE html> <html> <head> <title>js反转字符串</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="zh-CN" /> </head> <body> <script type="text/javascript"> (function(){ //一行代码得到d.c.b.a //解法一 //思路,将参数按逗号解析开,然后使用逆序排序(a/b调转)【其实就是反转】,再拼接回去 console.log(arguments[0].split(',').sort(function(a,b){return b-a;}).join(',')); //解法二【较易理解】 //思路,利用call来调用String.split分割参数,然后反转再拼接 console.log(String.prototype.split.call(arguments[0], '').reverse().join('')); //解法三 //思路,利用call使得"a,b,c,d"调用了Array.slice方法,默认参数为0,-1,分割成数组后再反转一下,重新拼接回来 console.log(Array.prototype.slice.call(arguments[0]).reverse().join('')); //关于call /* * 来自:http://www.zhihu.com/question/20289071 @Fisch * 我也是刚刚理解,你首先要知道call和apply是Function的方法, * 他的第一个参数是this,第二个是Function的参数。 * 比如你的方法里写了this,普通调用这个方法这个this可能是window。 * 而如果你用了call,第一个参数写啥,里面的this就是啥 * */ //推荐一个网址:https://developer.mozilla.org/zh-CN/docs/JavaScript })("a,b,c,d"); </script> </body> </html>
未经同意禁止转载!
转载请附带本文原文地址:js反转字符串,首发自 Zjmainstay学习笔记