jquery中,将a数组赋值给b,修改b中的值,不对a造成任何影响

废话不多说,请看代码:

方法一:

var a = ["a", "b", "c", "d"];  
var b = a.slice(); 
b=b.splice(1);
console.log(a);   //a=(4) ["a", "b", "c", "d"]
console.log(b);   //b=(3)["b","c","d"]

jquery中,slice(start,stop)方法用户选取基于索引的元素的子集。

1.slice(): 选取全部元素。上述例子中,var b = a.slice(); b=["a", "b", "c", "d"];

2.slice(1):选取从索引1开始的所有元素。以上述例子为例,var b = a.slice(1);b=["b","c","d"];

3.slice(0,2): 选取从索引0开始,到索引2结尾的元素。以上述例子为例,var b = a.slice(0,2);b=["a","b","c"];

4.slice(-1): 当值为负数时,表示从被选元素的末端选取元素。以上述例子为例,var b = a.slice(-1);b=["d"];

5.slice(-3,-1): 当值为负数时,表示从被选元素的末端选取元素注意:当start值为负数时,stop值必须也为负数,且stop值大于start值,否则选取失败。以上述例子为例,var b = a.slice(-3,-1);b=["b","c"];

 

方法二:

var a = ["a", "b", "c", "d"];  
var b = a.concat(); 
b=b.splice(1);
console.log(a);   //a=(4) ["a", "b", "c", "d"]
console.log(b);   //b=(3)["b","c","d"]

 

这里的splice,虽然也可以选取数组的值,但使用slice()时不会更改数组的值,而splice会更改数组的值

Array.splice(start,?deletecount,...items)

start:开始修改的索引位置(当值为负数时,表示从数组的末端选取元素);deletecount:需要删除的数量(不需要删除时赋值为0);items:需要插入的元素

给大家展示下通过splice实现增删改的用法:

var arr = ["hello","world","!"]

删除:arr.splice(1,2)   // arr =  ['!']

 (或:arr.splice(2)   // arr = ["hello","world"])

添加:arr.splice(0,0,"hello","world")   // arr = ['hello', 'world', '!']

修改:arr.splice(1,1,"张三")   // arr = ['hello', '张三', '!']

posted @ 2021-01-26 14:53  leenAY  阅读(376)  评论(0)    收藏  举报