js数组的常用方法

JavaScript 数组是高度灵活的集合,提供了许多用于操作和查询数组的方法。以下是一些常用的数组方法:

  1. push()

    • 添加一个或多个元素到数组末尾。
    let numbers = [1, 2, 3];
    numbers.push(4); // [1, 2, 3, 4]
    
  2. pop()

    • 移除数组最后一个元素并返回它。
    let numbers = [1, 2, 3];
    let last = numbers.pop(); // last = 3, numbers = [1, 2]
    
  3. shift()

    • 移除数组第一个元素并返回它。
    let numbers = [1, 2, 3];
    let first = numbers.shift(); // first = 1, numbers = [2, 3]
    
  4. unshift()

    • 在数组开头添加一个或多个元素。
    let numbers = [1, 2, 3];
    numbers.unshift(0); // [0, 1, 2, 3]
    
  5. splice()

    • 向/从数组中添加/删除元素。
    let numbers = [1, 2, 3, 4];
    numbers.splice(1, 2, 'a', 'b'); // [1, 'a', 'b', 4]
    
  6. slice()

    • 返回数组的一部分。
    let numbers = [1, 2, 3, 4, 5];
    let part = numbers.slice(1, 4); // [2, 3, 4]
    
  7. concat()

    • 合并两个或多个数组。
    let numbers1 = [1, 2];
    let numbers2 = [3, 4];
    let combined = numbers1.concat(numbers2); // [1, 2, 3, 4]
    
  8. join()

    • 将数组元素连接成一个字符串。
    let words = ['Hello', 'world'];
    let sentence = words.join(' '); // 'Hello world'
    
  9. indexOf()

    • 返回某个元素在数组中首次出现的索引。
    let numbers = [1, 2, 3, 4];
    let index = numbers.indexOf(3); // 2
    
  10. lastIndexOf()

    • 返回某个元素在数组中最后一次出现的索引。
    let numbers = [1, 2, 3, 2, 4];
    let lastIndex = numbers.lastIndexOf(2); // 3
    
  11. find()

    • 返回数组中满足测试函数的第一个元素的值。
    let users = [{ name: 'Alice' }, { name: 'Bob' }];
    let user = users.find(user => user.name === 'Bob'); // { name: 'Bob' }
    
  12. findIndex()

    • 返回数组中满足测试函数的第一个元素的索引。
    let users = [{ name: 'Alice' }, { name: 'Bob' }];
    let index = users.findIndex(user => user.name === 'Bob'); // 1
    
  13. filter()

    • 创建一个新数组,包含通过测试的所有元素。
    let numbers = [1, 2, 3, 4, 5];
    let evens = numbers.filter(number => number % 2 === 0); // [2, 4]
    
  14. map()

    • 创建一个新数组,其结果是调用函数后的返回值。
    let numbers = [1, 2, 3, 4];
    let squares = numbers.map(number => number * number); // [1, 4, 9, 16]
    
  15. reduce()

    • 将数组中的所有元素累加为一个单一的值。
    let numbers = [1, 2, 3, 4];
    let sum = numbers.reduce((total, num) => total + num, 0); // 10
    
  16. reduceRight()

    • 从右到左将数组中的所有元素累加为一个单一的值。
    let numbers = [1, 2, 3, 4];
    let sum = numbers.reduceRight((total, num) => total + num, 0); // 10
    
  17. some()

    • 如果数组中至少有一个元素满足测试,则返回true。
    let numbers = [1, 2, 3];
    let hasPositive = numbers.some(number => number > 0); // true
    
  18. every()

    • 如果数组中的所有元素都满足测试,则返回true。
    let numbers = [1, 2, 3];
    let allPositive = numbers.every(number => number > 0); // true
    
  19. sort()

    • 对数组元素进行排序。
    let numbers = [4, 2, 5, 1, 3];
    numbers.sort((a, b) => a - b); // [1, 2, 3, 4, 5]
    
  20. reverse()

    • 颠倒数组中元素的顺序。
    let numbers = [1, 2, 3, 4];
    numbers.reverse(); // [4, 3, 2, 1]
    

ECMAScript 6(也称为ES2015)引入了许多新的数组方法,极大地增强了数组的操作能力。以下是一些ES6中新增的数组方法及其示例:

  1. Array.of()

    • 创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。
    let arr = Array.of(1, '2', true); // [1, '2', true]
    
  2. Array.from()

    • 从类数组对象或可迭代对象创建一个新的、浅拷贝的数组实例。
    let str = 'hello';
    let chars = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
    
  3. find()

    • 返回数组中满足提供的测试函数的第一个元素的值。如果没有找到符合条件的元素,则返回undefined
    let users = [{ name: 'Alice' }, { name: 'Bob' }];
    let user = users.find(user => user.name === 'Bob'); // { name: 'Bob' }
    
  4. findIndex()

    • 返回数组中满足提供的测试函数的第一个元素的索引。如果没有找到符合条件的元素,则返回-1
    let users = [{ name: 'Alice' }, { name: 'Bob' }];
    let index = users.findIndex(user => user.name === 'Bob'); // 1
    
  5. fill()

    • 用一个固定值填充一个数组从开始到结束(不包括结束)的元素。
    let numbers = [1, 2, 3, 4];
    numbers.fill(0); // [0, 0, 0, 0]
    
  6. copyWithin()

    • 将数组的一部分复制到数组的另一个位置。
    let numbers = [1, 2, 3, 4, 5];
    numbers.copyWithin(0, 3); // [4, 5, 3, 4, 5]
    
  7. entries(), keys(), values()

    • 返回一个迭代器,允许遍历数组的元素。
    • entries() 返回键值对的迭代器。
    • keys() 返回键的迭代器。
    • values() 返回值的迭代器。
    let arr = ['a', 'b', 'c'];
    for (let [index, value] of arr.entries()) {
      console.log(index, value);
    }
    // 0 'a', 1 'b', 2 'c'
    
  8. includes()

    • 判断一个数组是否包含一个指定的值,根据情况返回truefalse
    let numbers = [1, 2, 3];
    let hasThree = numbers.includes(3); // true
    
  9. flat(), flatMap()

    • flat() 将数组元素扁平化到一个新数组中,深度默认为1。
    • flatMap() 首先使用映射函数映射每个元素,然后将结果扁平化到一个新数组中。
    let arr = [1, [2, [3, [4]]]];
    let flatArr = arr.flat(2); // [1, 2, 3, [4]]
    let flatMappedArr = arr.flatMap(x => x); // [1, 2, 3, 4]
    

这些方法使得数组操作更加灵活和强大,提高了开发效率,展示了如何使用数组方法来执行常见的操作,如添加或删除元素、搜索、排序和转换数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值