首页 > 其他分享 >js 常用数组函数 join() 拼接, push()尾部添加、pop()移除最后一项、shift()删除第一项、unshift()头部添加、sort() 小到大顺序排列、slice()截取获取新数组

js 常用数组函数 join() 拼接, push()尾部添加、pop()移除最后一项、shift()删除第一项、unshift()头部添加、sort() 小到大顺序排列、slice()截取获取新数组

时间:2024-04-09 19:45:46浏览次数:23  
标签:sort 10 函数 截取 添加 参数 数组 age

js 常用数组函数 join() 拼接, push()尾部添加、pop()移除最后一项、shift()删除第一项、unshift()头部添加、sort() 小到大顺序排列、slice()截取获取新数组、splice()分隔截取数组 、concat()连接、reverse() 反转

文章目录


最近对前端一些函数的用法还不是很熟悉,有一些函数容易混淆,在此总结一下,同时分享给各位小伙伴:

1. join() 函数

join() 将数组中元素 组成字符串 ,需要传个参数作为连接符,不传的话默认就是逗号。
在这里插入图片描述

2.push() 函数

在数组 尾部逐个添加 元素,返回结果数组的长度,能接收任意数量参数,push() 修改了原数组。
在这里插入图片描述

3. pop() 函数

pop() 移除数组最后一项,返回的是被移除项。修改原数组
在这里插入图片描述

4.shift() 函数

shift() 删除数组的第一项元素,返回被删除的元素, 修改原数组
在这里插入图片描述

5.unshift() 函数

向数组的头部添加元素,返回的是结果数组的长度,修改原数组
在这里插入图片描述

6.sort() 函数

将数组按照从小到大的顺序排列, 修改原数组 。
在这里插入图片描述
注意:
sort()方法是用于数组排序的,语法如下:array.sort(),
使用sort()方法后会改变原数组的顺序(而不是生成一个新数组,同时原数组保持不变)
示例一:对字符数组进行排序

    var myarr1=["h","e","l","l","o"];
    myarr1.sort();
    console.log(myarr1);//(5) ['e', 'h', 'l', 'l', 'o']
  • 1
  • 2
  • 3
  1. sort中没有参数时,会按照数组元素对应的ASCII码进行比较和排序
    示例二:对数字数组进行排序
    var myarr2=[9,5,1,4,6];
    myarr2.sort();
    console.log(myarr2);//(5) [1, 4, 5, 6, 9]
  • 1
  • 2
  • 3
  • 4

ort()无法对由两位数以上的数组元素构成的数组进行合理排序
示例

    var myarr2=[10,25,3,8];
    myarr2.sort();
    console.log(myarr2);//10 25 3 8
  • 1
  • 2
  • 3
  • 4

出现原因和解决方法
因为sort()方法会首先会调用每个数组数据项的toString()方法,
转换成字符串以后再进行比较,在字符串中"25"<“3”,
解决方法是需要用到sort的参数,此时这个参数叫做比较函数

  1. sort()的参数——比较函数
    示例:使用比较函数将数字数组进行正确排序
 	var myarr2=[10,25,3,8];
    var mycompare=function (x,y){
      if(x<y) return -1;
      else if(x>y) return 1
      else return 0;
    };
    myarr2.sort(mycompare);
    console.log(myarr2);//(4) [3, 8, 10, 25]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

比较函数的参数
比较函数会接受两个参数,并对两者进行比较

  • 若第一个参数应位于第二个参数之前,则返回一个负数
  • 若第一个参数等于第二个参数,则返回0
  • 若第一个参数应位于第二个参数之后,则返回一个正数
    通过以上逻辑的比较函数,会使数组最后变为升序排列,
    若要变为降序,只需返回一个负数变为返回一个正数即可(正数变负数,负数变正数)

比较函数不能对混搭(字符+数字)数组进行排序

  var myarr3=["h",10];
    myarr3.sort(mycompare);
    console.log(myarr3);//(2) ['h', 10]
    myarr3.sort();
    console.log(myarr3);//(2) [10, 'h']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

不能将比较函数用于比较一个不能转化成数字的字符串和数组的排序,
这是因为比较函数会先将字符串转化成数字再比较,当字符串不能转换成数字时,就不能比较大小(不用比较函数,也就是sort不加参数时,比较的是ASCII值,此时可以比较)
正确用法:

    // 对于不能转换成数字的字符串(字母型字符串),不使用比较参数,直接比较ASCII值
    var myarr3=["h",10];
    myarr3.sort();
    console.log(myarr3);//(2) ['h', 10]
    // 对于可以转换成数字的字符串(数字型字符串),使用比较函数转换成数字再比较
    var myarr4=["23",37,"1",14];
    myarr4.sort(mycompare);
    console.log(myarr4);//(4) ['1', 14, '23', 37]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

总结:
1. 数组中既有字符串又有数字时,先看看其中的字符串是字母型字符串还是数字型字符串,

2. 若是字母型字符串,sort不用带参数,直接比较ASCII值
若是数字型字符串,sort带参数,让比较函数将字符串转换成数字再比较

3.对于由对象构成的数组,如何排序?
需求
数组项是对象,现在需要根据对象的某个属性,对数组进行排序

	//要求根据对象属性age对数组进行排序
    var arr=[
      {age:10,name:'Tom'},
      {age:8,name:'Jack'},
      {age:20,name:'Michel'},
      {age:12,name:'Daniel'},
    ];
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

解决方法:使用比较函数

    var compare = function (obj1, obj2) {
        if (obj1.age < obj2.age) return -1;
        else if (obj1.age > obj2.age) return 1;
        else return 0;
    } 
    console.log(arr.sort(compare));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

效果:

{age: 8, name: 'Jack'}
{age: 10, name: 'Tom'}
{age: 12, name: 'Daniel'}
{age: 20, name: 'Michel'}
  • 1
  • 2
  • 3
  • 4
  • 5

7. reverse() 函数

数组反转

8. concat() 函数

在不影响原数组的情况下,复制了一个数组,将参数添加到副本的尾部,因此若没有传参,就相当于复制了原数组。
在这里插入图片描述

9.slice() 函数

slice() 不影响原数组 ,返回原数组指定开始位置 - 结束位置的新数组。 这个位置是数组的下标,当然是从0开始计算,如果只有一个参数,那就是默认第二个参数到尾部。
在这里插入图片描述
demo中可以看出,返回的新数组是 不包含 结束位置的那个元素。
在这里插入图片描述
如果不传第二个参数,默认返回到最后,也 不包含 最后一个的哦。 参数是 负数,相当于反着来,这时候就是包含了结束位置, 不包含 开始位置的元素。
在这里插入图片描述

10. splice() 函数

删除任意项元素,需要两个参数:要删除的位置 和 要删除的数量。
在这里插入图片描述
demo中看出,splice()返回被删除的元素数组,原数组被修改了。

插入任意项元素,需要三个参数:要删除的位置,一个不删 和 要插入的元素。
在这里插入图片描述
事实证明,是在要插入位置 之前 插入的。

替换,其实就是在指定位置删除任意项元素,再插入任意项元素。
在这里插入图片描述

11. indexOf() & lastIndexOf() 函数

查找参数元素在数组中的 位置 ,找不到就返回 -1 。那必传参数一定是目标元素咯,还有个可选参数就是要开始查找的起点位置。 indexOf() 从头到尾找,lastIndexOf() 从尾到头找。
在这里插入图片描述

原文链接:https://blog.csdn.net/u014212540/article/details/130887111

标签:sort,10,函数,截取,添加,参数,数组,age
From: https://www.cnblogs.com/sunny3158/p/18124654

相关文章

  • 使用C语言函数对数组进行操作
        前言       在我们了解数组和函数之后,我们对数组和函数进行结合,之后完成一些操作吧    题目描述    杰克想将函数与数组结合进行一些操作,以下是他想要达到的效果,请你帮帮他吧!    创建一个整型数组,完成对数组的操作   ......
  • 数组
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacex1808汪敏{classProgram{staticvoidMain(string[]args){////float[]score;//声明了一个数组,就是告诉你有一列火车,叫什么......
  • js把数组中的某一项移动到第一位
    在JavaScript中,如果你要将数组中的某一项移动到第一位,你可以使用以下几种方法。假设我们有一个数组arr,并且想要将位于索引index的项移动到数组的第一个位置:letarr=[1,2,3,4,5];letindex=2;//假设我们想将3(即索引2的项)移动到第一位方法一:使用splice和unshif......
  • c# Framwork4.5 添加webapi处理跨域请求问题
     常用2种方式 1)web.config允许所有来源,HTTP方法,请求标头跨域:后端,在Web.config中找到<system.webServer>标签,里面添加配置如下:<httpProtocol><customHeaders><addname="Access-Control-Allow-Origin"value="*"/><addname="Acc......
  • 改进NeteaseCloudMusicGtk4:添加移除歌曲按钮
    之前已经发了一篇博客简述了如何阅读这个项目,尽管这个项目已经开源很久了,但我找了很久都没有找到怎么从播放列表移除歌曲,那就自己动手实现,再提个PR吧。运行起来应用后通过Inspector(Ctrl+Shift+I)找到希望放置按钮的位置:专辑按钮的旁边。第一步就是修改UI文件,把这个按钮显示出......
  • 实用指南:使用Pytest Allure测试框架添加用例失败截图
    前言在我们进行软件测试的过程中,我们提交的测试报告缺少一些详细的附件,尤其是用例失败时候的截图,更方便我们去查看具体的情况,我们在进行测试时会使用allure+pytest来生成测试报告,本文我们就来介绍一下在allure测试报告中添加用例失败截图。钩子函数准备我们可以使用pytest_run......
  • Java中 Arrays.asList() 处理基本数据类型数组和包装类型数组的差异
    文章目录前言一、基本数据类型数组和包装类型数组的区别二、Arrays.asList()对这两种数组的处理方式总结前言在使用Java中的Arrays.asList()方法时,我们可能会发现它对基本数据类型数组和包装类型数组的处理方式存在一些差异。这种差异体现了Java在基本数据......
  • Springboot 添加License 以及生成证书和证书验证
    1.先准备生成cer证书及私钥,公钥##(1).生成私匙库#validity:私钥的有效期多少天 365 #alias:私钥别称 privateKey#keystore:指定私钥库文件的名称(生成在当前目录) privateKeys.keystore#storepass:指定私钥库的密码(获取keystore信息所需的密码) public_password#key......
  • JavaSE笔记10数组入门
    数组的入门概念数组属于引用数据类型,其父类是Object数组可以容纳多个元素。(数组是一个数据的集合)数组可以存储基本和引用数据类型数组是引用类型,所以存储再堆内存中数组不能直接存储Java对象,但是可以存储其引用(内存地址)分类一维数组二维数组多维数组二维数组本质......
  • postgresql 截取第二个特定字符
    在开发PostgreSQL数据库应用程序时,经常需要在查询语句中截取字符串。在某些情况下,需要截取字符串中的特定字符。例如,从URL中获取域名,从文本中获取文件名等。本文将介绍如何在PostgreSQL中截取字符串中的第二个特定字符。我们将使用SUBSTRING和POSITION函数来实现这一目......