javascript里面的splice函数的用法求解
本文介绍了javascript里面的splice函数的用法求解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
a=[1,2,3,4];
b=a;
c=b;
c.splice(3,1," ");
console.log(a); //输出是[ 1, 2, 3, ' ' ]
e=2;
d=e;
f=d;
f=3;
console.log(e);//输出是2
为什么会这样?还有我怎么才能让c数组经过splice 后不影响数组a的值呢?
解决方案
首先你要先了解一下splice方法,可以看看w3school的解释:JavaScript splice() 方法
需要特别注意一下:
而你的b和c都是对a数组的内存引用,所以你想要的是一个深拷贝。
可以看看下面这两种方式:
1、js的slice函数
代码如下:
var arr = ["One","Two","Three"];
var arrtoo = arr.slice(0);
arrtoo[1] = "set Map";
document.writeln("数组的原始值:" + arr + "<br />");//Export:数组的原始值:One,Two,Three
document.writeln("数组的新值:" + arrtoo + "<br />");//Export:数组的新值:One,set Map,Three
2、js的concat方法
代码如下:
var arr = ["One","Two","Three"];
var arrtooo = arr.concat();
arrtooo[1] = "set Map To";
document.writeln("数组的原始值:" + arr + "<br />");//Export:数组的原始值:One,Two,Three
document.writeln("数组的新值:" + arrtooo + "<br />");//Export:数组的新值:One,set Map To,Three
这篇关于javascript里面的splice函数的用法求解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文