javascript里面的splice函数的用法求解

查看:104
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆