首页 > 其他分享 >数组的常用方法

数组的常用方法

时间:2023-04-21 14:46:46浏览次数:42  
标签:常用 console log res arr let 数组 方法

数组的常用方法

  • 数组是一个复杂数据类型,我们在操作它的时候就不能再想基本数据类型一样操作了

  • 比如我们想改变一个数组

    // 创建一个数组
    var arr = [1, 2, 3]
    
    // 我们想把数组变成只有 1 和 2
    arr = [1, 2]
    
    • 这样肯定是不合理,因为这样不是在改变之前的数组
    • 相当于心弄了一个数组给到 arr 这个变量了
    • 相当于把 arr 里面存储的地址给换了,也就是把存储空间换掉了,而不是在之前的空间里面修改
    • 所以我们就需要借助一些方法,在不改变存储空间的情况下,把存储空间里面的数据改变了

push() 后面添加

  • push 是用来在数组的末尾追加一个元素,返回添加以后的长度

    var arr = [1, 2, 3]
    
    // 使用 push 方法追加一个元素在末尾
    arr.push(4)
    
    console.log(arr) // [1, 2, 3, 4]
    
    var res = arr.push(1,2,3,34);
    
    res//8  
    
    
    

pop() 后面删除

  • pop 是用来删除数组末尾的一个元素,返回删除的元素

    var arr = [1, 2, 3]
    
    // 使用 pop 方法删除末尾的一个元素
    var res = arr.pop()
    
    console.log(arr) // [1, 2]
    

unshift() 前面添加

  • unshift 是在数组的最前面添加一个元素

    var arr = [1, 2, 3]
    
    // 使用 unshift 方法想数组的最前面添加一个元素
    arr.unshift(4)
    
    console.log(arr) // [4, 1, 2, 3]
    

shift() 前面删除

  • shift 是删除数组最前面的一个元素

    var arr = [1, 2, 3]
    
    // 使用 shift 方法删除数组最前面的一个元素
    arr.shift()
    
    console.log(arr) // [2, 3]
    

splice() 截取并添加

  • splice 是截取数组中的某些内容,按照数组的索引来截取

  • 语法: splice(从哪一个索引位置开始,截取多少个,替换的新元素) (第三个参数可以不写)

  var arr = [1, 2, 3, 4, 5]
  
  // 使用 splice 方法截取数组
  var res = arr.splice(1, 2)
  
  console.log(arr) // [1, 4, 5]
  console.log(res)//[2,3]  返回被删除的元素
  
  - `arr.splice(1, 2)` 表示从索引 1 开始截取 2 个内容
- 第三个参数没有写,就是没有新内容替换掉截取位置
  
  ```javascript
  var arr = [1, 2, 3, 4, 5]
  
  // 使用 splice 方法截取数组
  arr.splice(1, 2, '我是新内容')
  
  console.log(arr) // [1, '我是新内容', 4, 5]
  • arr.splice(1, 2, '我是新内容') 表示从索引 1 开始截取 2 个内容
  • 然后用第三个参数把截取完空出来的位置填充

reverse() 反转

  • reverse 是用来反转数组使用的

    var arr = [1, 2, 3]
    
    // 使用 reverse 方法来反转数组
    arr.reverse()
    
    console.log(arr) // [3, 2, 1]
    

sort() 排序

  • sort 是用来给数组排序的(默认按照字典排序 先按照第一位排序-如果第一位相等就按照第二位)

    var arr = [2, 3, 1]
    
    // 使用 sort 方法给数组排序
    arr.sort()
    
    console.log(arr) // [1, 2, 3]
    
    • 这个只是一个基本的简单用法
            // 升序
            arr4.sort(function (a, b) {
                return a - b
            })
            // 降序
            arr4.sort(function (a, b) {
                return b - a
            })
    
            let arr5 = [{
                    username: 'zhangsan',
                    age: 19
                },
                {
                    username: 'lisi',
                    age: 10
                },
            ]
            // 按照对象的年龄 降序  
            // a ,b  数组的元素
            arr5.sort(function (a, b) {
                return b.age - a.age
            })
    

以上7个都会改变原始数组

join() 数组连接为字符串

​ 语法:.join(连接符)

​ 作用:将数组用连接符连接成为一个字符串

​ 返回值:连接好的字符串

    <script>
        let arr = [1,2,3,4,5]
        console.log(arr);			//第一次打印
        let res = arr.join('~')		//用'~'连接
        console.log(arr);			//第二次打印
        console.log(res);			//结果打印
    </script>

运行结果:

(5) [1, 2, 3, 4, 5]
(5) [1, 2, 3, 4, 5]
1~2~3~4~5

concat() 拼接数组

​ 语法:数组.concat(其他数组)

​ 作用:将两个数组拼接为一个数组

​ 返回值:拼接好的新数组

<script>
    let arr = [1,2,3,4,5];
	console.log(arr);			//第一次打印
	let res = arr.concat([6,7,8])		//拼接新的数组
	console.log(arr);			//第二次打印
	console.log(res);			//结果打印
</script>

运行结果:

(5) [1, 2, 3, 4, 5]
(5) [1, 2, 3, 4, 5]
(8) [1, 2, 3, 4, 5,6,7,8]

slice() 截取数组

​ 语法:.slice(开始索引结束索引)
​ 开始索引:默认是0
​ 结束索引:默认是数组长度

​ 作用:截取数组中的某些数据

​ 返回值:以新数组的形式返回截取出来的数据内容

     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.slice()     	 //不写参数,代表从头截取至末尾
         console.log(arr);           //第二次打印
         console.log(res);           //结果打印
     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]
 (5) [1, 2, 3, 4, 5]
 (5) [1, 2, 3, 4, 5]
  • 括号内填写一个参数
     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.slice(2)      //一个参数,代表从索引2的位置截取至末尾
         console.log(arr);           //第二次打印
         console.log(res);           //结果打印
     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]
 (5) [1, 2, 3, 4, 5]
 (5) [3, 4, 5]
  • 括号内填写两个参数 特点:包前不包后(包含开始索引,不包括结束索引)
     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.slice(2,4)    //两个参数,代表从索引2的位置截取至结束索引的前一个
         console.log(arr);           //第二次打印
         console.log(res);           //结果打印
     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]
 (5) [1, 2, 3, 4, 5]
 (5) [3, 4]

indexOf() 查找数据在数组中的索引位置

​ 语法:数组.indexOf(数据)

​ 作用:查找数据在数组中的索引位置(第一次出现时的索引位置)

​ 返回值:有该数据,返回第一次出现的索引位置
​ 没有该数据,返回-1(用来去重)

  • 输入存在的数据时
     <script>
         let arr = [1,2,3,4,3]
         console.log(arr);           //第一次打印
         let res = arr.indexOf(3)    //查找数组中3第一次出现时的索引位置
         console.log(arr);           //第二次打印
         console.log(res);           //结果打印
     </script>

运行结果:

 (5) [1, 2, 3, 4, 3]
 (5) [1, 2, 3, 4, 3]
 2
  • 输入不存在的数据时
     <script>
         let arr = [1,2,3,4,3]
         console.log(arr);           //第一次打印
         let res = arr.indexOf(5)    //查找数组中5第一次出现时的索引位置
         console.log(arr);           //第二次打印
         console.log(res);           //结果打印
     </script>

运行结果:

 (5) [1, 2, 3, 4, 3]
 (5) [1, 2, 3, 4, 3]
 -1

forEach() 遍历数组

​ 语法:数组.forEach ( function ( item , index , arr ) { } )
​ 传递一个函数作为参数,函数会根据数组的长度来执行,数组有多长,函数执行多少次
​ 接受三个形参:item:每一项;index:数组的索引;arr:原始数组

​ 作用:遍历数组

​ 返回值:无

     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         arr.forEach(function ( item , index , arr ) { } )    

         console.log(item);           //形参item:数组中那一项
         console.log(index);          //形参index:数组那一项的索引
		 console.log(arr);			  //形参arr:原始数组
		 consloe.log('----------')	  //分割线,方便查看,无实际意义

     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]	//第一次打印
 1						//形参item:数组中那一项
 0						//形参index:数组那一项的索引
 (5) [1, 2, 3, 4, 5]	//形参arr:原始数组			
 ----------				//分割线
 2
 1
 (5) [1, 2, 3, 4, 5]
 ----------
 3
 2
 (5) [1, 2, 3, 4, 5]
 ----------
 4
 3
 (5) [1, 2, 3, 4, 5]
 ----------
 5
 4
 (5) [1, 2, 3, 4, 5]
 ----------
 //共输出5次。

map() 映射数组

​ 语法:数组.map ( function ( item , index , arr ) { } )
​ 传递一个函数作为参数,函数会根据数组的长度来执行,数组有多长,函数执行多少次
​ 接受三个形参:item:每一项;index:数组的索引;arr:原始数组

​ 作用:映射数组

​ 返回值:映射后的新数组

     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.map(function ( item , index , arr ) {
         	return item * 10		 //每一项*10
         } )    

         console.log(res);           

     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]	
 (5) [10, 20, 30, 40, 50]	

filter() 过滤数组

​ 语法:数组.filter ( function ( item , index , arr ) { } )

​ 作用:过滤数组

​ 返回值:过滤后的新数组

     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.filter(function ( item , index , arr ) {
         	return item > 3		 	 //输出大于3的元素
         } )    

         console.log(res);           

     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]	
 (5) [4,5]	

every() 判断是否全满足条件

​ 语法:数组.every ( function ( item , index , arr ) { } )

​ 作用:判断数组是不是每一项满足条件

​ 返回值:一个布尔值

     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.every(function ( item , index , arr ) {
         	return item > 3		 	 //判断所有元素是否都大于3
         } )    

         console.log(res);           

     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]	
 false

some() 判断是否有满足条件的项

​ 语法:数组.some ( function ( item , index , arr ) { } )

​ 作用:判断数组是不是有某一项满足条件

​ 返回值:一个布尔值

     <script>
         let arr = [1,2,3,4,5]
         console.log(arr);           //第一次打印
         let res = arr.every(function ( item , index , arr ) {
         	return item > 3		 	 //判断是否有元素大于3
         } )    

         console.log(res);           

     </script>

运行结果:

 (5) [1, 2, 3, 4, 5]	
 true

以上九个不改变原始数组

标签:常用,console,log,res,arr,let,数组,方法
From: https://www.cnblogs.com/zerotwo-zrx/p/17340287.html

相关文章

  • yum常用命令
    一、查看源 [root@hlccfs_rpms]#yumrepolist仓库标识仓库名称hl95hl95yumks10-adv-osKylinLinuxAdvancedServer10-Osk......
  • Linux Shell常用shell命令
    Linux常识Linux目录介绍/usr系统级的目录,可以理解为C:/Windows/,/usr/lib可理解为C:/Windows/System32。/usr/local用户级的程序目录,可以理解为C:/ProgremFiles/。用户自己编译的软件默认会安装到这个目录下。/usr/bin:存放的是系统使用的应用程序。/opt用户级的程......
  • JAVA获取当前时间的三种方法
    1、java.util.Dateday=newDate();SimpleDateFormatsdf=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);System.out.println(sdf.format(day));通过Date类来获取当前时间,比较常用。需要使用Java.util.Date类,速度一般。2、SimpleDateFormatsdf=newSimpleDateFormat......
  • 如何有效的关闭Win10自动更新?(5种方法)
    转载自如何有效的关闭Win10自动更新?(5种方法)-littlefat-博客园(cnblogs.com)想寻找Win10关闭自动更新方法?对于Win10用户经常会遇到系统提示更新,很多用户都因其而烦恼。有时选择拒绝更新,系统会一直不停的提示系统更新;选择更新了,更新后一些软件或网络打印机等相关设备又无法使......
  • 获取url中参数具体值的方法
    我们常用的是用正则或者其他处理办法,这个这里不讲,主要想谈以下方法 1、如果给到的地址是完整的地址,比如 https://i.cnblogs.com/posts/edit?test=123那么,我们使用 newURL('https://i.cnblogs.com/posts/edit?test=123').searchParams.get('test') 即可获取到test对应的值......
  • golang 中常用的超时控制的方案示例
    在go中,我们很容易就可以实现超时控制,今天分享2种解决方案:1.select+time.After2.select+context其实两种方案中,我们都是通过channel来控制的,在方案1中,对于time.After,通过返回一个只读<-chanTime实现,而context中,则通过context.Done()实现,通过返回<-chans......
  • iOS:常用的谓词
    funccompare(_predicateString:String,num:Any)->Bool{letpredicate=NSPredicate(format:predicateString)returnpredicate.evaluate(with:num)}///比较运算///`>`:判定大于///`<`:判定小于///`=`:判定等于///`!=`或`<>`:判定不等于//......
  • vue兼容IE的方法规范
    第三方插件的兼容性需经过ie和国产电脑浏览器测试后,才可以使用。1、main.js顶部添加babel-polyfillimport'babel-polyfill'importVuefrom'vue'importAppfrom'./App.vue'importrouterfrom'./router'importstorefrom'./store'2、js-base6......
  • 浅谈日出日落的计算方法以及替代工具 - 日出日落 API
    引言如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具-日出日落API。日出日落API是一种可以获取指定城市或地点每日日出时间和日落时......
  • 中移链合约常用开发介绍(三)工程化开发智能合约
    一、目的本文档基于中移链合约常用开发,介绍了工程化开发智能合约的方法。本文档将从自动生成项目展开,适合刚接触合约开发的开发人员入门工程化开发。二、智能合约介绍区块链作为一种分布式可信计算平台,去中心化是其最本质的特征。每笔交易的记录不可篡改地存储在区块链上。智能合约......