Skip to content

slice,splice,区别,是否改变数组

slice 不修改原来数组 splice 改变原来数组,返回

slice

截取元素

  • slice(start , end )切割, 从数组从 start 到 end 位置切割; //截取内容包括数组下标数值,包括 start 不包括 end。 start 从 0 开始 只有一个值时候,start 包括下标数值的以后
    返回一个新数组
js
var arr = [1, 2, 3, 4, 5, 6, 7];
arr.slice(1); // [2,3,4,5,6,7]
arr.slice(-1); // [7]  获取数组最后一位
arr.slice(0, 1); // [1] 获取数组第一位
arr.slice(1, 3); // [2, 4] 截取下标为[1, 3)
arr.slice(2, -1); // [3, 4, 5, 6] 从下标为2值 到最后一位(不包括最后一位)
arr.slice(2, -3); // [3, 4]

slice 是浅拷贝

js
const arr = [{ name: "1" }, 2, { name: "test" }];

const arr2 = arr.slice(0, 2);
console.log(arr2);
arr[0].name = "abc";
console.log(arr2);

splice

删除、新增元素

index :从什么位置开始添加或删除 howmay :删除多少个元素 if howmay=0 标示不删除 v:添加的元素 改变原来数组 返回值,删除的数值

js
var arr = [1, 2, 3, 4, 5, 6, 7];
arr.splice(1, 0, "add"); //[1,'add',2,3,4,5,6,7]
arr.splice(0, 0, "add"); // ['add',1,2,3,4,5,6,7]
arr.splice(1, 1, "add"); //[1,'add', 3,4,5,6,7]
arr.splice(1, 1); //[1,3,4,5,6,7]

在 MIT 许可下发布