js 数组的拷贝(不影响原数组),数组相等

改变原数组的方法:
pop();删除尾部的第一个元素并且返回这个元素;
var a = [1,2,3];
var b = a.pop();
console.log(a);//[1,2]
console.log(b);//3
类似方法:
push();尾部推入;返回数组长度;
shift();顶部弹出;返回该元素;
unshift();顶部亚入;返回数组长度;
reverse();反转数组;返回反转后的数组;
splice();常用方法;返回被删除的数组成的数组,可以为[];

不改变原数组的方法:
concat:返回拼接后的数组,不改变原数组;
forEach;
map;
join();返回拼接后的字符串,可以指定间隔;
//attention:
[1,2,3].join(’’)
//“123”
[1,2,3].join()
//“1,2,3”
slice(start,end);截取数组,返回截取的部分,不改变原始数组;
sort();排序;传入一个函数作为参数,可以控制为升序,降序或者随机;(try用来产生随机数);
toString();[1,2,3].toString()==[1,2,3].join();
数组拷贝
数组属于引用类型;简单的赋值只是添加了一个指向数组的指针;ex:
var a = [1,2,3];
var b = a;
b.push(2);
console.log(a)//[1,2,3,2]
那么如何实现独立的拷贝?介绍下面两种方法:两种方法性能上相差不大,不同浏览器内核上各有千秋:
//方法1
var a = [1,2,3];
var b = a.slice();
a.reverse;
console.log(a);//[3,2,1]
console.log(b);//[1,2,3]
//方法2
var c = [4,5,6];
var d = c.concat();
c.reverse();
console.log©;//[6,5,4]
console.log(d);//[4,5,6]

数组相等
先说下坑吧:
任意两个数组相等都会返回false;[]=[];//false
怎么办?千万不要逐项去比较,看看上面可用的方法:toString();
转化为字符串一次就比较完了。

作者:lance_10030
来源:CSDN
原文:https://blog.csdn.net/lance_10030/article/details/75258204
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/weixin_42371145/article/details/84580699