likes
comments
collection
share

JS从入门到精通--数组

作者站长头像
站长
· 阅读数 9

数组操作方法

JavaScript 提供了许多用于操作数组的方法。下面是一些常用的数组操作方法:

  1. push():向数组末尾添加一个或多个元素,并返回修改后的数组的新长度。

    const arr = [1, 2, 3];
    arr.push(4);
    console.log(arr); // 输出 [1, 2, 3, 4]
    
  2. pop():从数组末尾移除最后一个元素,并返回被移除的元素。

    const arr = [1, 2, 3];
    const removedElement = arr.pop();
    console.log(arr); // 输出 [1, 2]
    console.log(removedElement); // 输出 3
    
  3. unshift():向数组开头添加一个或多个元素,并返回修改后的数组的新长度。

    const arr = [2, 3, 4];
    arr.unshift(1);
    console.log(arr); // 输出 [1, 2, 3, 4]
    
  4. shift():从数组开头移除第一个元素,并返回被移除的元素。

    const arr = [1, 2, 3];
    const removedElement = arr.shift();
    console.log(arr); // 输出 [2, 3]
    console.log(removedElement); // 输出 1
    
  5. concat():将两个或多个数组合并成一个新数组。

    const arr1 = [1, 2];
    const arr2 = [3, 4];
    const mergedArray = arr1.concat(arr2);
    console.log(mergedArray); // 输出 [1, 2, 3, 4]
    
  6. slice():从数组中截取指定位置的片段,并返回一个新数组,不会修改原数组。

    const arr = [1, 2, 3, 4, 5];
    const slicedArray = arr.slice(1, 4);
    console.log(slicedArray); // 输出 [2, 3, 4]
    
  7. splice():从数组中移除、替换或插入元素,并返回被移除的元素组成的数组。

    const arr = [1, 2, 3, 4, 5];
    const removedElements = arr.splice(1, 2, 'a', 'b');
    console.log(arr); // 输出 [1, 'a', 'b', 4, 5]
    
  8. indexOf():返回指定元素在数组中首次出现的索引,如果不存在则返回 -1。

    const arr = ['a', 'b', 'c'];
    console.log(arr.indexOf('b')); // 输出 1
    console.log(arr.indexOf('d')); // 输出 -1
    
  9. forEach():对数组中的每个元素执行指定的函数。

    const arr = [1, 2, 3];
    arr.forEach((element) => {
      console.log(element);
    });
    // 输出:
    // 1
    // 2
    // 3
    
  10. reverse():反转数组中元素的顺序,会修改原数组。

    const arr = [1, 2, 3, 4, 5];
    arr.reverse();
    console.log(arr); // 输出 [5, 4, 3, 2, 1]
    

这只是一小部分常用的数组操作方法,JavaScript 还提供了许多其他方法,如 map()、filter()、reduce() 等,以及 ES6 引入的更多功能强大的数组方法。这些方法可以根据具体的需求和场景选择使用,以便更方便地操作和处理数组数据。

数组创建方法

JavaScript 提供了多种创建数组的方法,以下是一些常用的数组创建方法:

  1. 使用数组字面量(Array Literal):通过方括号 [] 创建一个新的数组,并在其中添加元素。

    const arr = [1, 2, 3];
    
    
  2. 使用 Array 构造函数:使用 Array 构造函数来创建一个新的数组。

    const arr = new Array(1, 2, 3);
    
  3. 使用 Array.from() 方法:从类数组对象或可迭代对象创建一个新数组。

    const arr = Array.from('hello');
    // 输出:['h', 'e', 'l', 'l', 'o']
    
  4. 使用 Array.of() 方法:根据传入的参数创建一个新数组,不管参数是什么类型。

    const arr = Array.of(1, 2, 3);
    // 输出:[1, 2, 3]
    
  5. 使用 fill() 方法:创建一个指定长度并用指定值填充的新数组。

    const arr = new Array(5).fill(0);
    // 输出:[0, 0, 0, 0, 0]
    
  6. 使用 Array.prototype.map() 方法:根据一个已有的数组创建一个新数组,新数组的元素是通过对原数组的每个元素进行处理得到的。

    const arr1 = [1, 2, 3];
    const arr2 = arr1.map((element) => element * 2);
    // 输出:[2, 4, 6]
    
  7. 使用 Array.prototype.filter() 方法:根据一个已有的数组创建一个新数组,新数组的元素是通过对原数组的每个元素应用指定条件过滤得到的。

    const arr1 = [1, 2, 3, 4, 5];
    const arr2 = arr1.filter((element) => element % 2 === 0);
    

这些方法提供了多种灵活的方式来创建数组,并且可以根据实际需求选择合适的方法。另外,数组还可以通过索引逐个赋值来创建,或者通过其他数组操作方法来创建和修改数组。

遍历数组

在JavaScript中,有多种方法可以遍历数组。以下是几种常见的方法:

  1. 使用for循环:
var myArray = [1, 2, 3, 4, 5];
for (var i = 0; i < myArray.length; i++) {
    console.log(myArray[i]);
}
  1. 使用forEach方法:
var myArray = [1, 2, 3, 4, 5];
myArray.forEach(function(item) {
    console.log(item);
});
  1. 使用map方法:
var myArray = [1, 2, 3, 4, 5];
myArray.map(function(item) {
    console.log(item);
});
  1. 使用reduce方法:reduce方法可以对数组的每个元素执行一个归约操作,并返回一个结果。虽然主要用于归约操作,但在遍历数组时也可以使用它。例如:
var myArray = [1, 2, 3, 4, 5];
myArray.reduce(function(acc, item) {
    console.log(item);
    return acc;
}, 0);
  1. 使用some方法:some方法用于检查数组中是否存在满足指定条件的元素。尽管它的主要目的是返回布尔值,但在遍历数组时也可以使用它来执行一些操作。例如:
var myArray = [1, 2, 3, 4, 5];
myArray.some(function(item) {
    console.log(item);
    return false; // 返回false以继续遍历
});

需要注意的是,以上方法在不同的情况下可能会有微妙的差异,例如在使用forEach和map方法时,回调函数的参数可能包括当前元素、索引和原数组。根据具体的需求,选择适合的方法来遍历数组。

数组转化的方法

有许多方法可用于对数组进行转换。下面是一些常见的数组转换方法:

  1. 使用map方法:map方法可以对数组中的每个元素应用一个转换函数,并返回一个新的数组,新数组的每个元素都是转换后的结果。例如:

  2. 使用filter方法:filter方法可以根据指定的条件筛选数组中的元素,并返回一个新的数组,新数组只包含满足条件的元素。例如:

  3. 使用reduce方法:reduce方法可以对数组中的元素执行一个累积操作,并返回一个最终结果。通过指定累积函数和初始值,可以将数组转换为单个值。例如:

  4. 使用join方法:join方法可以将数组中的所有元素按照指定的分隔符连接成一个字符串。例如:

  5. 使用其他转换方法:除了上述方法,还有许多其他转换数组的方法,如sort(排序数组元素)、reverse(反转数组元素顺序)、slice(提取部分数组)等。这些方法可以根据具体需求进行使用。

这些方法可以单独使用,也可以组合使用,根据需求对数组进行不同的转换和操作。

关于数组转化

如果你想要改变原数组而不是创建一个新的数组,可以使用一些特定的方法来转换原数组。以下是几种常见的方法:

  1. 使用forEach方法:forEach方法可以对数组中的每个元素应用一个转换函数,因此可以在原数组上直接修改元素的值。例如:
  2. 使用for循环:通过使用for循环和索引,可以直接访问并修改原数组的元素。例如:
  3. 使用map方法(不推荐):尽管map方法通常会返回一个新的数组,但你也可以直接在回调函数中修改原数组的元素。但是这种用法通常不被推荐,因为它会改变map方法的原始意图。例如: 需要注意的是,修改原数组可能会对代码的可读性和维护性产生负面影响。如果你需要保留原始数组并创建一个新的转换后的数组,推荐使用上述提到的方法中的第一种方式。

不改变原数组的数组转化方式

如果你不想改变原数组,而是希望创建一个新的转换后的数组,可以使用以下方法:

  1. 使用map方法:map方法可以对数组中的每个元素应用一个转换函数,并返回一个新的数组,而不改变原数组。例如:
  2. 使用filter方法:filter方法可以根据指定的条件筛选数组中的元素,并返回一个新的数组,不包含满足条件的元素。例如:
  3. 使用slice方法:slice方法可以返回数组的一个子数组,而不修改原数组。例如:
  4. 使用其他转换方法:根据具体需求,还可以使用其他方法如concat(合并数组)、reduce(归约数组元素)等来创建新的转换后的数组。

这些方法都是在不改变原数组的前提下进行数组转换的常用方式。通过创建新的数组,你可以保留原始数据并在需要的时候使用转换后的数组。