ES5 方法总结

1.slice

let arr = [2,4,434,43];
let arr1= arr.slice();
//let arr1 = arr.slice(0);
arr[0] = 'a';
console.log(arr,arr1); // [a,4,434,43] [ 2, 4, 434, 43 ]

2. 遍历数组

Array.prototype.clone = function(){
let a=[];
for(let i=0,l=this.length;i<l;i++) {
a.push(this[i]);
}
return a;
}
let arr = ['aaa','bbb','ccc','wwwww','ddd'];
arr[0] = 'a';
let arr2 = arr.clone();
console.log(arr,arr2);//['a','bbb','ccc','wwwww','ddd'] ['aaa','bbb','ccc','wwwww','ddd']

3. concat()

Array.prototype.clone=function(){
return [].concat(this);
//或者 return this.concat();
   //或者 return this.concat([]);
}
let arr = ['aaa','asss']
let arr1 = arr.clone()
arr[0] = 123
console.log(arr,arr1)//[123,'asss'] ['aaa','asss']

ES6 方法总结

1. Object.assign() 浅复制,也可以实现数组的克隆

let arr = ['sdsd',123,123,123]
let arr1 = []
Object.assign(arr1,arr)
arr[1] = 'aaaa'
console.log(arr,arr1) // [ 'sdsd', 'aaaa', 123, 123 ] [ 'sdsd', 123, 123, 123 ]

 2. 扩展运算符

const a1 = [1, 2];
const a2 = [...a1];
a1[0] = 'aaa'
console.log(a1,a2)// ['aaa',2]  [1,2]

JS 数组克隆方法总结(不可更改原数组)的更多相关文章

  1. js 对象克隆方法总结(不改变原对象)

    1.通用对象克隆: function clone(obj){ let temp = null; if(obj instanceof Array){ temp = obj.concat(); }else ...

  2. js中那些方法不改变原来的数组对象

    一.map方法 function fuzzyPlural(single) { var result = single.replace(/o/g, 'e'); //replace也不会修改原来数组的值, ...

  3. concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

    var arr1 = ['a', 'b', 'c']; var arr2 = ['d', 'e', 'f']; var arr3 = arr1.concat(arr2); // arr3 is a n ...

  4. Json数组转换字符串、字符串转换原数组......

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. JS 数组克隆方法总结

    ES5 方法总结 1.slice let arr = [2,4,434,43] let arr1= arr.slice() arr[0] = 'a' console.log(arr,arr1) // ...

  6. js对象克隆方法

    方法1: function clone(obj){ var o; switch(typeof obj){ case 'undefined': break; case 'string' : o = ob ...

  7. Jni :三维数组处理方法 ,以整形三维数组为例 C++实现

    本文原创,转载请注明地址:http://www.cnblogs.com/baokang/p/4982846.html 关于Jni的基本使用方法,请参阅:Java 调用 C++ (Java 调用 dll ...

  8. PHP将对象转换成数组的方法(兼容多维数组类型)

    /** * @author gayayang * @date 2012-8-21 * @todo 将对象转换成数组 * @param unknown_type $obj * @return unkno ...

  9. js数组的方法小结

    js中数组是一种非常常用数据结构,而且很容易模拟其他的一些数据结构,比如栈和队列.数组的原型Array.prototype内置了很多方法,下面就来小小总结一下这些方法. 检测数组就不用多说了,使用EC ...

随机推荐

  1. 08-人脸识别-FaceNet-classify.py代码阅读(说明见注释)

    """An example of how to use your own dataset to train a classifier that recognizes pe ...

  2. pycharm调整选中的变量的颜色

  3. JQuery校验时间大小

    常用于按时间条件(起始日-截止日)查询时,进行校验 function checkDate(){ var startTime = $('#startTime').val(); var endTime = ...

  4. 【border相关】【P3426】 [POI2005]SZA-Template

    [border相关][P3426] [POI2005]SZA-Template Description 给定一个字符串 \(S\),要求一个最短的字符串 \(T\),使得 \(S\) 可以由 \(T\ ...

  5. iOS硬解码获取宽高

    1: CVPixelBufferGetWidth(_:The pixel buffer whose width you want to obtain) 获取解码后图像宽度 CVPixelBufferG ...

  6. Generator生成器函数执行过程的理解

    一个最基本的Generator函数格式如下,函数体内部要使用yield修饰符则必须在函数名前加上*号 ; function *testYield(x){ console.log('before yie ...

  7. 【cf补题记录】Codeforces Round #607 (Div. 2)

    比赛传送门 这里推荐一位dalao的博客-- https://www.cnblogs.com/KisekiPurin2019/ A:字符串 B:贪心 A // https://codeforces.c ...

  8. Linux 系统开机时间及当前时间

    最近一次系统开机时间:date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M ...

  9. 【IntelliJ IDEA学习之四】IntelliJ IDEA常用插件

    版本:IntelliJIDEA2018.1.4 一.代码规范Alibaba Java Coding Guidelines:阿里巴巴代码规范检查插件FindBugs-IDEA:潜在 Bug 检查Sona ...

  10. win10 下安装 ZooKeeper 的方法

    ZooKeeper 下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 1 随便解压到一个目录 2 在 zookeeper-3.x ...