网上的阿里二面的一道笔试题,实现destructuringArray函数,具有如下功能: // destructuringArray( [1,[2,4],3], "[a,[b],c]" ) // result // { a:1, b:2, c:3 } 网上查了查,代码过于复杂。 这个用解构赋值就可以了,不过要用eval 先提取出字符串中的变量,声明变量 然后解构赋值: [a,[b],c]= [1,[2,4],3] 最后返回对象。 1 function destructuringArray(ary,str){ 2 var obj,tmp=str.replace(/[\[\]]/g,"");//正则去除[] 3 (0, eval)("var "+tmp+";");//定义变量,严格模式下,间接调用eval 4 eval(str+"=ary;");//解构赋值 5 eval("obj={"+tmp+"};"); 6 return obj; 7 } 不用eval的写法 1 function destructuringArray(ary,str){ 2 var tmp=str.replace(/[\[\]]/g,"");//正则去除[] 3 return new Function( "var "+tmp+";"+str+"="+JSON.stringify(ary)+";return {"