【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
假设有两个数组:
var a = ['a1', 'a2', 'a3']; var b = ['b1', 'b2', 'b3', 'b4'];要求在 不新定义上下文变量的情况下,交换两个数组的值,并且数组内元素顺序不变。
----------------------
我也搞过不短时间的js了,见过这题,立即想到apply,call一类的方法或者涉及到prototype(当时以为要考察这些),换this指向一类的,因为好像记得有类似的一个帖子用一句代码实现的类似功能,但记不起来了。
各位有什么好办法?
===========下面是我做的,为了不影响大家思路,请先跳过=========
但是这些方法不熟,于是换了一种方法,用js数组也是对象的特性,重新加一个属性做缓存交换:
a.b = b; b.a = a; a = a.b; b = b.a;回来已测试,发现是实现了,但是属性缓存没有删除,于是后面又加了:delete a.a;delete b.b;
6句代码实现。
var a = ['a1', 'a2', 'a3'];
var b = ['b1', 'b2', 'b3', 'b4'];
a = [ b, b = a][0];
console.log(a, b);
难道非要这样写?
var a = ['a1', 'a2', 'a3'];
var b = ['b1', 'b2', 'b3', 'b4'];a = [ b, b=a];
a=a[0];
console.log(a, b);
引用来自“纠结名字”的评论
来~ 楼主 教你一招高级的