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', '张三', '!']

浙公网安备 33010602011771号