百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

常用的数组方法,包括ES6

toyiye 2024-06-21 11:58 12 浏览 0 评论

以下所有方法来源于网络,统计归纳所得·.....自测没有问题。

若有任何不对的或者有补充的,可以评论区提出哈~

// 1、push()(末尾添加元素)
// 作用:向数组的末尾添加n个元素
// 参数:参数时新增的元素,可以串多个
// 返回值:新数组的数组成员的个数
// 原数组发生变化
  let arr = [1,2,3,4,5]; 
	console.log(arr.push(5));   // 6  
	console.log(arr); // [1,2,3,4,5,5]  

// 2、pop()(删除最后一项)
// 作用:删除数组的最后一项
// 参数:不需要传参数
// 返回值:被删除的那一项
// 原数组发生改变
  let arr = [1,2,3,4,5];  
	console.log(arr.pop());// 5  
	console.log(arr);  //[1,2,3,4]  

// 3、unshift()(开始位置添加一项)
// 作用:向数组的开始位置添加n个元素
// 参数:参数是新增的元素,可以是多个
// 返回值:新数组的长度
// 原数组发生改变
  let arr = [1,2,3,4,5] 
  console.log(arr.unshift(2))    // 6  
	console.log(arr)  //[2,1,2,3,4,5]  

/** 4、shift()(开始位置删除一项)作用:删除数组的第一项,
参数:不需要传参数
返回值:被删除的那一项
原数组发生改变*/
  let arr = [1,2,3,4,5]  console.log(arr.shift())  // 1  
console.log(arr)   // [2,3,4,5]

/** 5、splice()(删除、添加、修改元素)
作用:删除元素,并向数组添加新元素
参数:splice(m,n);从索引m开始,删除n项;splice(m);
从索引m开始删除到末尾splice(m,n,x,...);从索引m开始删除n项,
并将x添加到原来位置;添加项可以是多个(如果删除项为0个,那么添加是
在m元素前面)
返回值:是个数组,数组中是被删除的项
原数组发生变化*/
  let arr = [1,2,3,4,5] 
  console.log(arr.splice(2,2))     //[3,4]  
console.log(arr)    // [1,2,5]  

/** 6、indexOf()(从左向右查询)不兼容IE低版本浏览器:IE6,7,8
作用:检测数组中是否存在某个元素参数:
被查询的元素(m,n)从索引n开始,m第一次出现的索引位置
返回值:返回数组中第一次匹配到的元素的索引,如果数组中没有匹配项返回-1
原数组不发生变化*/
  let arr = [1,2,3,4,5,2]  
  let arr1 = arr.indexOf(2)  
  console.log(arr1)  // 1  
  let arr2 = arr.indexOf(9)  
  console.log(arr2)  // -1  

/** 7、lastIndexOf()(从左到右查询)不兼容IE低版本浏览器:IE6,7,8
作用:检测数组中是否存在某个元素参数:被检测的元素
返回值:返回数组中最后一次匹配到的元素的索引,如果数组中没有匹配项返回-1
原数组不发生变化*/

  let arr = [1,2,3,4,5,2]  
  let arr1 = arr.lastIndexOf(2)  
  console.log(arr1)  // 5  
	let arr2 = arr.lastIndexOf(9)  
  console.log(arr2)  // -1 

/** 8、slice()(截取)作用:按照起始和结束位置的索引截取数组
参数:有两个参数slice(m,n):从索引m开始,截取到索引n;
(包前不包后)有一个参数slice(m):从索引m开始截取到末尾;
没有参数:数组的克隆;(slice(0)也是数组的克隆);
以上情况参数都支持负数,负数情况会默认被加上数组的长度,处理成正数.
返回值:截取的数组
原数组不发生变化*/
  let arr = [1,2,3,4,5]  
  console.log(arr.slice(1,3))   // [2,3]  
	console.log(arr)    //  [1,2,3,4,5]

/** 9、sort()(排序)
作用:对数组的元素进行排序参数:
没有参数
sort():只能排序数组成员项是相同位数的数字
sort(function(a,b){return a-b}):从小到大排序sort(function(a,b){return b-a}):
从大到小排序
返回值:排序之后的数组原数组发生变化*/
     var ary=[1,3,10,50,2,120,30];       
			ary.sort(
        function fn(a,b){          
          return a-b; //这里是一个回调函数,把函数当作实参传给sort的方法       
        })       
			console.log(ary);

/** 10、reverse()(倒序)
作用:使数组中元素倒序
参数:不需要参数
返回值:成员倒序的数组
原数组发生变化
*/ 
	let arr = [1,2,3,4,5]  
  console.log(arr.reverse())    // [5,4,3,2,1]  
	console.log(arr)    // [5,4,3,2,1]  

/** 11、concat()(拼接数组)
作用:拼接两个或多个数组
参数:  不传参数:数组的克隆  传参数:将传入的参数拼接到数组中、可以传多个
返回值:拼接之后的新数组
原数组不发生变化
*/
  let arr = [1,2,3,4,5]  
  console.log(arr.concat([1,2]))  // [1,2,3,4,5,1,2]  
	console.log(arr)   // [1,2,3,4,5]  

/** 12、join()(数组拼接成字符串)
作用:将数组的成员项通过制定字符拼接成字符串参数:
不传参数:会默认按照逗号拼接传参数:会按照参数字符拼接
返回值:拼接之后的字符串原数组不发生变化*/
  var arr = [1,2]  
  var result = arr.join();  
	console.log(result); //'1,2'

//13、map()(映射)
// 作用:方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值;
// 参数:参数是一个回调函数;数组有几项,回调函数就执行多少次;在回调函数中处理数组中的每项;
// 返回值:映射的新数组;
// 原数组不发生变化;
// 示例:
var ary = [1,2,3]; 
ary.map(function(item,index,arr){});
// item是遍历数组的每一项
// index是遍历数组的索引
// arr就是原数组

  let ary = [1,2,3,4,5]  
  ary.map( (item,index,arr)=>{
    item= item* 2          
    console.log(`item:${item}    index:${index}     arr:${arr}`)  
  })     
	console.log(ary)  

//14、forEach()(遍历数组)
// 作用:遍历数组;
// 参数:参数是一个回调函数;数组有几项,回调函数就执行多少次;
// 返回值:没有返回值;undefined;
// 原数组不发生变化;
// 示例:
var ary = [1,2,3]; 
ary.forEach(function(item,index,arr){});
// item是遍历数组的每一项
// index是遍历数组的索引
// arr就是原数组

  let ary = [1,2,3,4,5]  
  ary.forEach( (item,index,arr)=>{        
    console.log(`item:${item}    index:${index}     arr:${arr}`)    
  })       
//  item:1    index:0     arr:1,2,3,4,5    
//  item:2    index:1     arr:1,2,3,4,5    
//  item:3    index:2     arr:1,2,3,4,5    
//  item:4    index:3     arr:1,2,3,4,5    
//  item:5    index:4     arr:1,2,3,4,5
  let ary = [1,2,3,4,5]  
  ary.forEach( (item,index,arr)=>{ 
    item= item* 2       
    console.log(`item:${item}    index:${index}     arr:${arr}`)    
  })       
console.log(ary)    
// item:2    index:0     arr:1,2,3,4,5    
// item:4    index:1     arr:1,2,3,4,5    
// item:6    index:2     arr:1,2,3,4,5    
// item:8    index:3     arr:1,2,3,4,5    
// item:10   index:4     arr:1,2,3,4,5    
// [1, 2, 3, 4, 5]//

// ary.forEach()和ary.map()的区别
// 1、 ary.forEach()是和for循环一样,是代替for。
// ary.map()是修改数组其中的数据,并返回新的数据。
// 2、ary.forEach() 没有return  ary.map() 有return。
// 3、map有映射,forEach没有映射。

// 15、toString()(数组转字符串)
// 作用:数组转字符串;
// 参数:不需要参数;
// 返回值:一个字符串,由数组的每项组成,数组的每一项用逗号隔开;
// 原数组不发生变化;
  let arr = [1, 2, 3, 4, 5];    
  let str = arr.toString();    
  console.log(str)// 1,2,3,4,5

// 16、find(查找)
// 从左到右依次进行查找,找到符合条件的那一项,直接返回,不再进行查找;
// 如果找不到,那么返回undefined; 返回true,说明就找到了;
// find会根据回调函数的返回值,判断是否要继续向右查找;
  let arr = [12,3,45,6,78];  
  let  a =  arr.find((item,index)=>{       
    console.log(100);
    //输出三次        
    return item>20;    
  })    
  console.log(a);//45

//17、 filter(过滤) 过滤; 原数组不发生改变;返回一个过滤后的新数组
  let arr = [12,3,45,6,78];  
	let ary = arr.filter((item,index)=>{        
    // 根据当前函数的返回值是true来获取这一项;如果是false,
    // 返回值中就没有这一项;        
    return item>30;    
  });    
	console.log(arr); // [12, 3, 45, 6, 78]    
	console.log(ary); // [45, 78]

//18、every 每一个都是true则返回true,如果有一个是false,那么直接返回false;只要找到false,直接结束,不再继续向下查找;返回值是布尔值
   let arr = [12,3,45,6,78];    
    let e = arr.every((item,index)=>{          
      return item>13;      
    })      
    console.log(e);//false    

//19、some 返回一个布尔值;只要有一个符合条件就返回true;
//找到true,就不再向右进行查找;
  let arr = [12,3,45,6,78];  
  let a  = arr.some((item,index)=>{        
    console.log(100);        
    return item>10;    
  })    
  console.log(a);//true

//20、includes 返回一个布尔值;如果有就返回true, 没有就返回false
  let  arr = [12,3,45,6,78];  
	console.log(arr.includes(45));//true  

/** 21、reduce迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值*/
  let arr = [12,3,45,6,78];  
	let  a = arr.reduce((prev,next)=>{        
    // prev : 第一次代表数组的第一项,以后都代表上一次回调函数的返回值;        
    console.log(prev,next);
    //第一次输出:112 3,
    //第二次输出:115 45,
    //第三次输出:160 6,
    //第四次输出:166 78        
    return prev +next;    
  });    
  console.log(a);//244
  // reduce回调函数后面可以传一个参数
  let arr = [12,3,45,6,78];  
  let  a = arr.reduce((prev,next)=>{
    console.log(prev,next);
    //第一次输出:100 12,
    //第二次输出:100 3,
    //第三次输出:100 45,
    //第四次输出:100 6,
    //第五次输出:100 78        
    return 100;    
   }, 100);    
  console.log(a);//100

/** 22、flat
作用:用于将嵌套的数组“拉平”,变成一维数组
返回值:返回一个新数组;
参数:有参数,默认是一层,如果有多层,就需要传层数;
如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。
原数组不改变*/
// 第一种
    let arr = [12,3,[1,2,3],6,78];    
    let ary=arr.flat()    
    console.log(ary);//[12,3,[1,2,3],6,78]    
    console.log(arr)// [12, 3, 1, 2, 3, 6, 78]//
// 第二种
    var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];    
    consolelog(arr.flat(Infinity))
    //[1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 11, 12, 12, 13, 14, 10]

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码