slice()

  • 从数组提取指定元素
  • 该方法不会改变原数组,会将提取到的元素返回给方法。

语法:

  1. 数组.slice(参数1,参数2);

参数:

  • 包含开始不包含结束
  1. 截取开始的位置的索引,包括开始索引

    1. var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
    2. console.log(arr); // 孙悟空 猪八戒 沙和尚 唐僧
    3. var result = arr.slice(0,2);
    4. console.log(result); // 孙悟空 猪八戒
  2. 截取结束的位置的索引,不包含结束索引

  • 第二个参数可以省略不写,此时会截取从开始索引后的所有元素
    1. var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
    2. console.log(arr);
    3. var result = arr.slice(0);
    4. console.log(result); / 孙悟空 猪八戒 沙和尚 唐僧
    索引可以传递一个负值,如果传递一个负值,则从后往前计算
    例如:-1 表示 倒数第一个 -2 表示 倒数第二个
    1. var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
    2. console.log(arr);
    3. var result = arr.slice(0,-1);
    4. console.log(result); // 孙悟空 猪八戒 沙和尚

splice()

  • 删除元素,并向数组添加新元素
  • 使用 splice() 会影响到原数组,会将指定元素从原数组中删除
  • 并将被删除的元素作为返回值返回

语法:

  1. 数组.splice(参数1,参数2,参数3);

参数:
第一个,表示开始位置的索引
第二个,表示删除的数量
第三个,可以传递一些新元素,这些元素将会自动插入到开始位置索引前边,可以传递多个元素
实例:

  1. var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
  2. console.log(arr); // 删除前 孙悟空 猪八戒 沙和尚 唐僧
  3. var result = arr.splice(0,2);
  4. console.log(result); // 被删除的元素 // 孙悟空 猪八戒
  5. console.log(arr); // 删除后 沙和尚 唐僧
  1. var arr = ['孙悟空', '猪八戒', '沙和尚', '唐僧'];
  2. console.log(arr); // 删除前 孙悟空 猪八戒 沙和尚 唐僧
  3. var result = arr.splice(0,2,"hello");
  4. console.log(result); // 被删除的元素 // 孙悟空 猪八戒
  5. console.log(arr); // 删除后 hello 沙和尚 唐僧