首页 > 其他分享 >了解操作数组的方法

了解操作数组的方法

时间:2024-07-19 15:27:51浏览次数:12  
标签:splice arr console log 元素 了解 数组 操作

1. join()

  • Array.join()方法将数组中所有元素都转换为字符串并连接在一起,返回最后生成的字符串。

  • 可以指定一个可选的字符串在生成的字符串中来分隔数组的各个元素。

    • 如果不指定分隔符,默认使用逗号。

  • 例如:

let arr = [1,2,3,4,5] // 创建一个包含5个元素的数组
console.log(arr.join())
console.log(arr.join(" "))
console.log(arr.join("")) 
console.log(arr.join("-"))

  • Array.join()方法是String.split()方法的逆向操作,后者是将字符串分割成若干块来创建一个数组

2. reverse()

  • Array.reverse()方法将数组中的元素颠倒顺序,返回逆序的数组。

  • 它采取了替换,换句话说,它不通过重新排列的元素创建新的数组,而是在原先的数组中重新排列它们。

  • 例:

let arr = [1,2,3,4,5] // 创建一个包含5个元素的数组
console.log(arr)
console.log(arr.reverse())

3. sort()

  • Array.sort()方法将数组中的元素排序并返回排序后的数组。

  • 当不带参数调用sort()时,数组元素以字母表顺序排列(如有必要将临时转换成字符串进行比较)

let arr = ["Mary","Jack","Join","Suan","Jim"]
console.log(arr.join())
arr.sort()
console.log(arr.join())

  • 如果数组包含undefined元素,它们会被排到数组的尾部。

4. concat()

  • Array.concat()方法创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数。

  • 如果这些参数中的任何一个自身是数组,则连接的是数组的元素,而非数组本身。

  • 注意:

    • concat()不会传递扁平化数组(数组降维)的数组。

    • concat()也不会修改调用的数组。

  • 例:

let arr = [1,2,3]
console.log(arr)
console.log(arr.concat(4,5))
console.log(arr)
console.log(arr.concat([4,5]))
console.log(arr.concat([4,5],[6,7]))
console.log(arr.concat(4,[5,[6,7]]))

5. slice()

  • Array.slice()方法返回指定数组的一个片段或子数组。它的两个参数分别指定了片段的开始和结束的位置。

  • 返回数组包含第一个参数指定的位置和所有到但不含第二个参数指定的位置之间的所有数组元素。

  • 如果只指定一个参数,返回的数组将包含从开始位置到数组结尾的所有元素。

  • 如果参数中出现了负数,它表示相对于数组中最后一个元素的位置。

    • 例如:参数-1指定了最后一个元素,而参数-3指定了倒数第三个元素。

  • 注意,slice()不会修改调用的数组

  • 例:

let arr = [1,2,3,4,5,6]
console.log(arr.slice(0,3))
console.log(arr.slice(3,5)) 
console.log(arr.slice(4)) 
console.log(arr.slice(3,-1)) 
console.log(arr.slice(-3,-2)) 
console.log(arr)

6. splice()

Array.splice()方法是在数组中插入或删除元素的通用方法。不同于slice()和concat(),splice()会修改调用的数组。注意,splice()和slice()拥有非常相似的名字,但是它们的功能却有本质的区别。

  • splice()能够从数组中删除元素、插入元素到数组中或者同时完成这两种操作。在插入或删除之后的数组元素会根据需要增加或减小它们的索引值,因此数组的其他部分仍然保持连续。

    • splice()的第一个参数指定了插入(或)删除的起始位置。

    • 第二个参数指定了应该从数组中删除的元素的个数。

    • 如果省略第二个参数,从起始开始到数据结尾的所有元素都将被删除。

    • splice()返回一个由删除元素组成的数组,或者如果没有删除元素就返回一个空数组

  • 例:

let arr = [1,2,3,4,5,6,7,8,9,10]
console.log(arr.splice(4))
console.log(arr)
console.log(arr.splice(1,2))
console.log(arr)

  • splice()的前两个参数指定了需要删除的数组元素。紧跟其后的任意个数的参数指定了需要插入到数组中的元素,从第一个元素指定的位置开始插入。

  • 例:

let arr = [1,2,3,4]
console.log(arr)
arr.splice(2,0,'a',true)
console.log(arr)
arr.splice(2,2,[1,2],3)
console.log(arr)

  • 注意:

    • 区别于concat(),splice()会插入数组本身而非数组的元素

7. push()和pop()

  • push()和pop()方法允许将数组当作栈来使用。

  • push()方法,在数组的尾部添加一个或多个元素,并返回数组新的长度。

  • pop()方法,则相反它删除数组的最后一个元素,减小数组长度并返回它删除的值。

  • 注意

    • 两个方法都修改并替换原始数组而并非生成一个修改版的新数组。组合使用push()和pop()能够用JavaScript数组实现先进后出的栈。

let stack = []
console.log(stack.push(1,2))
console.log(stack.pop())
console.log(stack.push(3))
console.log(stack.pop())
console.log(stack.push([4,5]))
console.log(stack.pop())
console.log(stack.pop())

8. unshift()和shift()

  • unshift()和shift()方法的行为非常类似于push()和pop(),不一样的是前者是在数组的头部而非尾部进行元素的插入和删除操作。

  • unshift()在数组的头部添加一个或多个元素,并将已存在的元素移动到更高索引的位置来获得足够的空间,最后返回数组新的长度。

  • shift()删除数组的第一个元素并将其返回,然后把所有随后的元素下移一个位置来填补数组头部的空缺。

let arr = []  // []
arr.unshift(1) // [1]  返回 1
arr.unshift(22) // [22,1] 返回 2
console.log(arr)
arr.shift()  // [1] 返回 22
console.log(arr) 
arr.unshift(3,[4,5]) //[3,[4,5],1] 返回 3
console.log(arr)
arr.shift() // [[4,5],1] 返回 [4,5]
console.log(arr)
arr.shift() // [1] 返回 1
console.log(arr)

  • 注意:

    • 当使用多个参数调用unshift()时它的行为令人惊讶。参数时一次性插入的(就像splice()方法)而非一次一个地插入。这意味着最终数组中插入的元素的顺序和它们参数列表中的顺序一致。而假如元素是一次一个地插入,它们的顺序应该是反过来的。

9. toString()和toLocaleString()

  • 数组和其他JavaScript对象一样拥有toString()方法。

  • 针对数组,该方法将其每个元素转换为字符串(如有必要将调用元素的toString()方法)并且输出用逗号分隔的字符串列表。

  • 注意:输出不包括方括号或其他任何形式的包裹数组值的分隔符。

  • 例子:

const arr = [1, 2, 'a', '1a'];
console.log(arr.toString());

  • 注意:

    • 这里与不使用任何参数调用join()方法返回的字符串是一样的。

  • toLocaleString()是toString()方法的本地化版本。它调用元素的toLocaleString()方法将每个数组元素转化为字符串,并且使用本地化(和自定义实现的)分隔符将这些字符串连接起来生成最终的字符串。

标签:splice,arr,console,log,元素,了解,数组,操作
From: https://blog.csdn.net/m0_58258716/article/details/140550714

相关文章

  • 数据结构与算法 数组篇之长度最小的子数组
    问题描述:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl,numsl+1,...,numsr-1,numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。题目链接:.-力扣(LeetCode)解题思路:双指针,......
  • 银河麒麟桌面操作系统V10(SP1)
    系统初始化操作cat/etc/os-release1、开启root登录输入命令:sudopasswdroot回车。输入普通用户的密码后,输入新的root密码(建议密码由字母大小写、数字、符号组成)。2、配置主机静态IP#vim/etc/network/interfaces3、配置本地ISOapt源sudocp/etc/apt/sources.lis......
  • idea内置数据库DataGrip + 多表操作sql语句
    多表操作:一对多(多对一),一对一,一对多可以通过物理外键实现,但实际上更推荐使用逻辑外键以下均为物理外键使用方法--=====================================多表设计================================---------------------一对多职位与员工--员工子表createta......
  • EXCEL:按有序列表对数组进行排序,无需自定义列表
    我有一张邮政编码表,其中包含发送到每个邮政编码的货件数量。我想按特定顺序按邮政编码对这个数组进行排序,我将其放在第二个列表中。我不想按客户数量或邮政编码的数字顺序排序,而是按这个专门排名的列表排序。我无法使用自定义排序功能,因为我的列表对于此功能来说太长了。......
  • 信创终端操作系统上定时任务crontab详解 _ 统信 _ 麒麟 _ 中科方德
    原文链接:信创终端操作系统上定时任务crontab详解|统信|麒麟|中科方德Hello,大家好啊!今天给大家带来一篇关于在信创终端系统上使用定时任务工具crontab的详解文章。crontab是Unix和类Unix操作系统中的一个非常强大的工具,用于定时执行命令或脚本。本文将详细介绍如何在......
  • python之初识函数(函数的使用、可变长度参数*args和**kwargs、return的作用),了解函数的
    文章目录前言1、函数1.1函数的本质1.2定义函数1.3调用函数1.4深入解析函数1.5定义函数的完整语法1.5.1参数1.5.1.1参数的分类(位置、默认、关键字、可变长度)1.5.1.2参数的书写顺序1.5.2关键字:return前言本篇文章的目的是带领大家从零开始认识函数,作为函数......
  • 代码随想录算法训练营第30天 | 贪心算法 2: 122.买卖股票的最佳时机II、55. 跳跃游戏
    代码随想录算法训练营第30天|贪心算法2:122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和122.买卖股票的最佳时机IIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/代码随想录https://programmerca......
  • FreeRTOS操作系统(详细速通篇)——— 第四章
             本专栏将对FreeRTOS进行快速讲解,带你了解并使用FreeRTOS的各部分内容。适用于快速了解FreeRTOS并进行开发、突击面试、对新手小白非常友好。期待您的后续关注和订阅!目录任务创建和删除1任务创建方式1.1动态任务创建1.2静态任务创建2任务删除函数......
  • FreeRTOS操作系统(详细速通篇)——— 第一章
            本专栏将对FreeRTOS进行快速讲解,带你了解并使用FreeRTOS的各部分内容。适用于快速了解FreeRTOS并进行开发、突击面试、对新手小白非常友好。期待您的后续关注和订阅目录1FreeRTOS简介1.1 什么为FreeRTOS?1.2为什么选择FreeRTOS?1.3FreeRTOS与裸机的区......
  • Linux操作系统Redhat<>--用户与组
    用户(超级、系统、普通)用户分类:1、超级用户。用来管理操作系统,它的权限非常高。一般是创建用户等条件下使用。它的编号为0(uid)。2、普通用户。用来登录操作系统,使用操作系统的功能。它的编号范围1000-600003、系统用户。确保系统能够正常运行。不用来登录。它的编号范围1-99......