CodeGym /Java 课程 /Frontend SELF ZH /数组的基础方法

数组的基础方法

Frontend SELF ZH
第 38 级 , 课程 0
可用

7.1 splice() 方法

JavaScript中的数组提供了一些内置方法来操作数据。在这次讲座中,我们会看四个主要的数组方法:splice()slice()concat()indexOf()。每个方法在数组上执行特定操作,可以大大简化数据处理。

splice() 方法 改变数组的内容,删除现有元素和/或添加新元素在这些位置上。

语法:

    
      splice(start, deleteCount, item1, item2, ...);
    
  

其中:

  • start: 开始更改的索引
  • deleteCount: 要删除的元素数量。如果未指定,则删除从 start 位置开始的所有元素
  • item1, item2, ...: 添加到数组的元素。如果未指定,则不添加元素

示例 1: 删除元素

在这个示例中,从数组 fruits 中删除两个元素,从索引 2 开始。返回值是删除的元素数组。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
      let removed = fruits.splice(2, 2);

      console.log(fruits);   // 输出: ['apple', 'banana', 'fig']
      console.log(removed);  // 输出: ['cherry', 'date']
    
  

示例 2: 添加元素

在这个示例中,在数组 fruits 中从索引 2 开始添加两个新元素 (datefig)。没有删除元素。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry'];
      fruits.splice(2, 0, 'date', 'fig');

      console.log(fruits);   // 输出: ['apple', 'banana', 'date', 'fig', 'cherry']
    
  

示例 3: 替换元素

在这个示例中,索引为 1 的元素 (banana) 被两个新元素 (datefig) 替换。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry'];
      fruits.splice(1, 1, 'date', 'fig');

      console.log(fruits);   // 输出: ['apple', 'date', 'fig', 'cherry']
    
  

7.2 slice() 方法

slice() 方法返回一个新数组,包含了从原始数组中拷贝的一部分。原始数组不会改变。

语法:

    
      array.slice(begin, end);
    
  

其中:

  • begin: 开始复制的索引
  • end: 复制到的索引(不包含这个索引的元素)。如果未指定,则复制到数组的末尾

示例 1: 复制部分数组

在这个示例中,创建了一个新数组,包含从 12 的索引元素,来自 fruits 数组。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
      let sliced = fruits.slice(1, 3);

      console.log(sliced);   // 输出: ['banana', 'cherry']
    
  

示例 2: 从数组开头复制

在这个示例中,创建了一个新数组,包含了来自 fruits 数组的 01 索引元素。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry'];
      let sliced = fruits.slice(0, 2);

      console.log(sliced);   // 输出: ['apple', 'banana']
    
  

示例 3: 复制到数组末尾

在这个示例中,创建了一个新数组,包含了来自 fruits 数组的从索引 1 开始到末尾的元素。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry'];
      let sliced = fruits.slice(1);

      console.log(sliced);   // 输出: ['banana', 'cherry']
    
  

7.3 concat() 方法

concat() 方法用于合并两个或多个数组。它返回一个新数组,包含了所有合并数组的元素。

语法:

    
      array1.concat(array2, array3, ...);
    
  

其中:

  • array1, array2, array3, ...: 要合并的数组

示例 1: 合并两个数组

在这个示例中,数组 fruits1fruits2 被合并到一个新的 combined 数组中。

JavaScript
    
      let fruits1 = ['apple', 'banana'];
      let fruits2 = ['cherry', 'date'];
      let combined = fruits1.concat(fruits2);

      console.log(combined); // 输出: ['apple', 'banana', 'cherry', 'date']
    
  

示例 2: 合并多个数组

在这个示例中,三个数组被合并到一个新的 combined 数组中。

JavaScript
    
      let fruits1 = ['apple', 'banana'];
      let fruits2 = ['cherry', 'date'];
      let fruits3 = ['fig', 'grape'];
      let combined = fruits1.concat(fruits2, fruits3);

      console.log(combined); // 输出: ['apple', 'banana', 'cherry', 'date', 'fig', 'grape']
    
  

示例 3: 合并数组和元素

在这个示例中,元素 cherrydate 被加入到数组 fruits,创建一个新的 moreFruits 数组。

JavaScript
    
      let fruits = ['apple', 'banana'];
      let moreFruits = fruits.concat('cherry', 'date');

      console.log(moreFruits); // 输出: ['apple', 'banana', 'cherry', 'date']
    
  

7.4 indexOf() 方法

indexOf() 方法返回数组中可以找到给定元素的第一个索引,或者返回 -1,如果未找到该元素。

语法:

    
      array.indexOf(searchElement, fromIndex);
    
  

其中:

  • searchElement: 要查找的元素
  • fromIndex: 开始搜索的索引。如果未指定,则从数组开头开始搜索

示例 1: 在数组中查找元素

在这个示例中,indexOf() 方法返回 fruits 数组中 banana 元素的索引。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry'];
      let index = fruits.indexOf('banana');

      console.log(index); // 输出: 1
    
  

示例 2: 元素未找到

在这个示例中,因为 fruits 数组中没有 date 元素,indexOf() 方法返回 -1

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry'];
      let index = fruits.indexOf('date');

      console.log(index); // 输出: -1
    
  

示例 3: 从特定索引开始查找元素

在这个示例中,indexOf() 方法从索引 2 开始查找 banana 元素,并在索引 3 找到了它。

JavaScript
    
      let fruits = ['apple', 'banana', 'cherry', 'banana'];
      let index = fruits.indexOf('banana', 2);

      console.log(index); // 输出: 3
    
  
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION