js里面的引用传递(数组赋值)
先看一个例子:
var a={name:[],list:[]};var list2=[1,3];a.name= list2;a.list= list2;a.list[1]=4;console.log(a.name);
本以为会输出[1,3],实际上输出[1,4],因为name和list都指向了list2的地址:
解决方案:
var a={name:[],list:[]};var list2=[1,3];a.name= $.extend(true,{},list2);a.list= $.extend(true,{},list2);a.list[1]=4;console.log(a.name);
或者:
var a={name:[],list:[]};var list2=[1,3];a.name= list2.concat();a.list= list2.concat();a.list[1]=4;console.log(a.name);
concat()表示连接数组,里面可以加值
记录编程的点滴,体会学习的乐趣
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步