splice
方法用于删除、替换、添加数组中的元素,由于参数较多,使用起来容易混淆
var list = [];list.push(1);list.push(2);list.push(3);console.log(list); // [1, 2, 3]// 删除list.splice(0, 1); // 删除 -> 从下标为0开始,长度为1console.log(list); // [2,3]list.splice(0, 2); // 删除 -> 从下标为0开始,长度为2console.log(list); // []//替换list.splice(0, 1, 4); // 替换 -> 从下标为0开始,长度为1的数组元素替换成4console.log(list); // [4,2,3]list.splice(0, 2, 4); // 替换 -> 从下标为0开始,长度为2的数组元素替换成4(即4,2整体替换成4)console.log(list); // [4,3]//添加list.splice(1, 0, 5); // 表示在下标为1处添加一项5console.log(list); // [1,5,2,3] list.splice(1,0,5,4,3); // 表示在下标为1处依次添加5/4/3三个元素console.log(list); // [1,5,4,3,2,3]
另外,splice
方法对数组进行操作时,会改变原有数组的结构,并生成一个新的数组
var list = [1,2,3]// 删除var list1 = list.splice(0,1)console.log(list) // [2,3]console.log(list1) // [1]// 替换var list2 = list.splice(0,1,2)console.log(list) // [2,2,3]console.log(list2) // [2]// 添加var list3 = list.splice(0,0,3)console.log(list) // [3,1,2,3]console.log(list3) // []
可以看到,splice
方法改变了原有数组list,并且会直接生成一个新数组,而且执行删除、替换、添加操作时,生成的新数组又稍有不同。
综上,splice
方法很灵活,功能点比较多,使用的好可以对数组的处理得心应手。