下面的代码在某些时候会返回意外的输出(至少对我来说是这样).
var arr1 = "john".split('');
var arr2 = arr1;
var arr3 = "jones".split('');
arr2.push(arr3);
console.log("array 1: length=" + arr1.length + " last=" + arr1.slice(-1));
//返回 [j,o,n,e,s]
相反地
console.log("array 1: length=" + arr1.length + " last=" + arr1.slice(-2));
//返回 [n,j,o,n,e,s]
这个输出背后的逻辑是什么?
push
不会生成一个 扁平化 的数组。该数组的最后一个元素是一个数组,其他元素都是字符串! - Ram