本文共 1194 字,大约阅读时间需要 3 分钟。
1.JS实现select()函数,达到以下效果
var obj={ x:{ xx:{ xxx:{ xxxx:1 } } } } obj.select('x.xx.xxx.xxxx');//输出1 obj.select('x.xx.xxxx');//undefined obj.select('x').select('xx.xxx');//输出{xxxx:1}
思路:将参数分割为数组,以obj[arr[i]]的形式调用
方法一和方法二基本差不多,都是牛客大佬分享的
//方法一var obj={ x:{ xx:{ xxx:{ xxxx:1 } } } }; Object.prototype.select=function (str) { var arr=str.split('.'); var result; for(var i=0;i
//方法二var obj={ x:{ xx:{ xxx:{ xxxx:1 } } } }; Object.prototype.select=function () { var args=arguments[0].split("."); var res=this; for(var i=0;i
2.JS将绝对路径简化
path ="/a/./b/../../c/", =>"/c"path="/User/./frank/../../Codes"=>"/Codes"
思路:将字符串转化为数组split()
,注意,字符串转为数组的第一位是""
"."
、".."
、""
的数据放入一个新数组中,遍历到".."
时,删除数组末尾元素,继续遍历。最后将数组转为字符串打印输出(字符串前需要加"/") function simplifyPath(path) { var arr=path.split("/"); var arr1=[]; if(path==""||path.length==0){ return path; } for(var i=0;i
转载地址:http://rvmgn.baihongyu.com/