js数组赋值:不修改原数组,返回新的数组

4,040 阅读1分钟

有一个数组arr = [1, 2, 3, 4, 10]。 var str = new Array;

str = arr; //这个不是赋值,将数组arr的引用赋给str,所以改变str也会改变arr (js实际创建的str是一个对象);

正确赋值: (效率最快) 1、str = [].concat(arr); content用于连接多个数组:arr1.concat(arr2,arr3,。。。。)

2、str=arr.slice(0); 返回一个新数组,从0到最后。 (slice有两个参数:xx.slice(start,end),返回数组xx下标从start到end的元素。若未定义end则返回start到结尾。)

3、使用for循环遍历-赋值给新数组 let len = arr.length,str = []; for(let i=0;i<len;i++){ str.push(arr[i]); }

4、使用json.stringify转字符串方法(效率最低) str = JSON.parse(JSON.stringify(arr));