首页 > 编程语言 >JavaScript的数组方法

JavaScript的数组方法

时间:2024-07-24 22:54:36浏览次数:10  
标签:元素 callback JavaScript item let 数组 fruits 方法

JavaScript中的数组是高阶的、灵活的数据结构,提供了许多内置方法来操作数组。以下是一些常用的数组方法:

1. 数组的添加、删除和替换方法:

  • push(...items):向数组末尾添加一个或多个元素,并返回新的长度。
  • pop():移除数组的最后一个元素,并返回被移除的元素。
  • unshift(...items):向数组开头添加一个或多个元素,并返回新的长度。
  • shift():移除数组的第一个元素,并返回被移除的元素。
  • splice(index, deleteCount, ...items):添加或删除数组元素,返回被删除的元素数组。
  • fill(value, start, end):用一个固定值填充数组的一部分。
  • let fruits = ['apple', 'banana', 'mango'];
    
    // 添加元素到数组尾部
    fruits.push('orange'); // ['apple', 'banana', 'mango', 'orange']
    
    // 删除最后一个元素
    let lastFruit = fruits.pop(); // 'orange'
    
    // 添加到数组开头
    fruits.unshift('grape'); // ['grape', 'apple', 'banana', 'mango']
    
    // 删除第一个元素
    let firstFruit = fruits.shift(); // 'grape'
    
    // 替换和添加元素
    fruits.splice(1, 1, 'cherry'); // ['grape', 'cherry', 'mango']
    
    // 填充数组
    fruits.fill('berry', 1, 3); // ['grape', 'berry', 'berry', 'berry']

2. 数组的排序方法:

  • sort(compareFunction):对数组元素进行排序,默认按照字符串的Unicode点进行排序,可以提供一个比较函数来自定义排序逻辑。
  • let numbers = [10, 5, 8, 2];
    
    // 默认排序
    numbers.sort(); // [2, 5, 8, 10]
    
    // 自定义排序
    numbers.sort((a, b) => b - a); // [10, 8, 5, 2]

3. 数组的迭代方法:

  • forEach(callback, thisArg):对数组中的每个元素执行一次提供的函数。
  • map(callback, thisArg):创建一个新数组,其元素是调用 callback 函数时的结果。
  • filter(callback, thisArg):创建一个新数组,包含通过 callback 函数测试的所有元素。
  • reduce(callback, initialValue):将数组元素累加到一个单一的值。
  • reduceRight(callback, initialValue):与 reduce 类似,但是累加的方向是从右到左。
  • let arr = [1, 2, 3, 4];
    
    // forEach
    arr.forEach((item, index) => {
      console.log(`Index: ${index}, Value: ${item}`);
    });
    
    // map
    let squared = arr.map(item => item * item); // [1, 4, 9, 16]
    
    // filter
    let even = arr.filter(item => item % 2 === 0); // [2, 4]
    
    // reduce
    let sum = arr.reduce((acc, item) => acc + item, 0); // 10
    
    // reduceRight
    let product = arr.reduceRight((acc, item) => acc * item, 1); // 24

4. 数组的位置查询方法:

  • indexOf(searchElement, fromIndex):返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。
  • lastIndexOf(searchElement, fromIndex):返回在数组中可以找到给定元素的最后一个索引。
  • let fruits = ['apple', 'banana', 'mango', 'kiwi'];
    
    // indexOf
    let index = fruits.indexOf('mango'); // 2
    
    // lastIndexOf
    let lastIndex = fruits.lastIndexOf('banana'); // 1

5. 数组的连接和切片方法:

  • concat(...items):合并两个或多个数组,返回一个新数组。
  • slice(start, end):返回一个新数组,包含从开始到结束(不包括结束)的数组的一部分。
  • let fruits1 = ['apple', 'banana'];
    let fruits2 = ['mango', 'orange'];
    
    // concat
    let combined = fruits1.concat(fruits2); // ['apple', 'banana', 'mango', 'orange']
    
    // slice
    let part = fruits1.slice(1); // ['banana']

6. 数组的查找方法:

  • find(callback, thisArg):返回数组中满足提供的测试函数的第一个元素的值,如果没有找到,则返回undefined。
  • findIndex(callback, thisArg):返回数组中满足提供的测试函数的第一个元素的索引,如果没有找到,则返回-1。
  • let users = [
      { name: 'Alice', age: 21 },
      { name: 'Bob', age: 25 },
      { name: 'Charlie', age: 30 }
    ];
    
    // find
    let user = users.find(user => user.age > 24); // { name: 'Bob', age: 25 }
    
    // findIndex
    let index = users.findIndex(user => user.name === 'Charlie'); // 2

7. 数组的填充方法:

  • fill(value, start, end):用一个固定值填充数组的一部分,从start索引到end索引(不包括end)。
  • let arr = [1, 2, 3, 4, 5];
    
    // 使用fill方法填充数组
    arr.fill(0, 2, 4); // 从索引2开始到索引4(不包括4),将元素填充为0
    console.log(arr); // [1, 2, 0, 0, 5]

8. 数组的扁平化和展开方法:

  • flat():创建一个新数组,所有子数组都被扁平化到一个深度。
  • flatMap(callback, thisArg):首先使用 map 的回调函数映射每个元素,然后将结果扁平化到一个深度。
  • let nestedArray = [1, [2, [3, [4]]], 5];
    
    // flat
    let flatArray = nestedArray.flat(2); // [1, 2, [3, [4]], 5]
    
    // flatMap
    let flatMapped = nestedArray.flatMap(item => [item, item * 2]); // [1, 2, 2, 4, 5, 10]

9. 数组的统计方法:

  • some(callback, thisArg):如果数组中至少有一个元素满足测试,则返回true。
  • every(callback, thisArg):如果数组中的所有元素都满足测试,则返回true。
  • let scores = [90, 85, 70, 95, 80];
    
    // some
    let somePass = scores.some(score => score >= 60); // true
    
    // every
    let allPass = scores.every(score => score >= 60); // true

这些方法提供了对数组进行操作的强大工具集,使得处理数据变得更加灵活和高效。

标签:元素,callback,JavaScript,item,let,数组,fruits,方法
From: https://blog.csdn.net/CSDNWBS/article/details/132906789

相关文章

  • c语言--数组详解
    数组的概念数组是一组相同类型元素的集合;从这个概念我们就可以发现2个有价值的信息:数组中存放的是1个或多个数据,但是数组的元素不能为0。数组中存放的多个数据,类型是相同的。数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。一维数组1.一维数组的创建和初......
  • 【C#】-byte[]数组和string的互相转化 (四种方法)
    第一种stringstr=System.Text.Encoding.UTF8.GetString(bytes);byte[]decBytes=System.Text.Encoding.UTF8.GetBytes(str);同样的,System.Text.Encoding.Default,System.Text.Encoding.ASCII也是可以的。还可以使用System.Text.Encoding.UTF8.GetString(bytes).TrimEnd('\0......
  • [POI]主管:你尽快封装一套读、写excel的方法,尽量简单
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18321864出自【进步*于辰的博客】方法简单,也出于个人时间考虑,就未作过多注释和说明,可谓,本文只有代码,但相信你一看便懂。目录1、读2、写最后1、读1、文件兼容类型。//......
  • 【大模型微调】一文掌握7种大模型微调的方法
    本篇文章深入分析了大型模型微调的基本理念和多样化技术,细致介绍了LoRA、适配器调整(AdapterTuning)、前缀调整(PrefixTuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景,使得读者可以依据特定的应用要求和计算资源限制,挑选最适合的微调方......
  • 梯度方法求解最优投资组合问题 (二次规划问题)
    优化程序分析师的目标是帮助投资者“做最好的事”。他们的共同目标应该是制定一套投资策略,为投资者提供最大可能的效用。在某些情况下,这可以形式化为一个涉及目标函数最大化的问题(例如投资者的投资组合的效用),该问题受到一个或多个约束(例如投资者的财富水平所施加的约束)。在投......
  • IPython的跨界魔术:%%javascript命令深度解析
    IPython的跨界魔术:%%javascript命令深度解析IPython,作为Python编程的强大交互式工具,提供了多种魔术命令来扩展其功能。其中,%%javascript魔术命令允许用户在IPythonNotebook中直接执行JavaScript代码,打通了Python和JavaScript两个世界,为数据可视化、Web内容操作等提供了便......
  • cloudCompare去噪方法如何使用
    1.统计去噪方法       该方法的原理较为简单,判断的距离阈值为上图标记区域,即平均距离加上标准差来作为阈值,如果该点与邻域点的最大距离大于该值,那该点则标记为孤立点。 2.姑且理解为空间去噪方法吧,实在也想不出啥好名字。 上栏为邻域搜索方法,个人强烈建议采......
  • c语言-数组(1)
    5.数组(1)数组的意义:保存多个具有相同数据类型的数据特点:(1)具有相同的数据类型。(2)数据的地址是连续的 数组的表现形式类型标识符[长度];数组的空间大小 数组的空间大小=单个数据的空间大小*长度tip:已知数组table,求该数组的长度?intl=sizeof(table)/sizeof(......
  • C语言 ——— 函数指针数组的讲解及其用法
    目录前言函数指针数组的定义函数指针数组的使用前言数组是存放一组相同类型数据的存储空间关于指针数组的知识请见:C语言———指针数组&指针数组模拟二维整型数组-CSDN博客那么要将多个函数的地址存储到数组中,这个数组该如何定义呢?函数指针数组的定义把多个函数......
  • Python获取list中指定元素索引的两种方法
    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等。怎么办?看下面方法一:利用数组自身的特性list.index(target),其中a是你的目标list,target是你需要的下标对应的值li=[10,8,9,26,72,6,28]print(li.index(8))但是,......