JS关于Array的方法介绍

Stella981
• 阅读 710
  • Array.length:数组的一条属性。基本用法:

    let array = [1,2,3,4,5]; console.log(array.length);//5

  • Array.prototype:数组原型

    console.log(Array.prototype);//Object

  • Array.isArray():是否是一个数组

    let array = [1,2,3,4,5]; console.log(Array.isArray(array));//true

  • Array.from():将一个 ArrayLike 对象或者 Iterable 对象转换成一个 Array。概念很抽象,我们看代码:

    var obj = { "0" : 1, length: 1 }; console.log(Array.from(obj));//[1]

对象类型的obj必须要求有一个length属性。

但是这个函数的最大作用是数组去重

let array = [1,2,2,2,3,3,4,5];
console.log(Array.from(new Set(array)));//[1,2,3,4,5]
  • Array.prototype.push():从数组尾部添加元素,返回新的数组长度,并且改变了原数组。

    let array = [1,2,3,4,5]; let len = array.push(6); console.log(array);//[1,2,3,4,5,6] console.log(len);//6

  • Array.prototype.pop():从数组尾部删除元素,返回删除的元素,并且改变了原数组。

    let array = [1,2,3,4,5]; let item = array.pop(); console.log(array);//[1,2,3,4] console.log(item);//5

  • Array.prototype.unshift():从数组头部添加元素,返回新的数组长度,并且改变了原数组。

    let array = [1,2,3,4,5]; let len = array.unshift(1); console.log(array);//[1,1,2,3,4,5] console.log(len);//6

  • Array.prototype.shift():从数组头部删除元素,返回删除的元素,并且改变了原数组。

    let array = [1,2,3,4,5]; let item = array.shift(1); console.log(array);//[2,3,4,5] console.log(item);//1

  • Array.prototype.slice():截取数组,返回一个新的数组,不改变原数组

    let array = [1,2,3,4,5]; let item = array.slice(1,2); console.log(array);//[1,2,3,4,5] console.log(item);//2

  • Array.prototype.join():把数组拼接成字符串,不改变原数组,返回一个拼接后的字符串,参数代表以什么来拼接。

    let array = [1,2,3,4,5]; let item = array.join(""); let item2 = array.join("a"); console.log(array);//[1,2,3,4,5] console.log(item,item2);//12345 1a2a3a4a5

  • **Array.prototype.splice(index,howmany,item1,…..,itemX)**:改变原数组,可以实现数组的增加,删除和改变。可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

    let array = [1,2,3,4,5]; let item = array.splice(1,1,3,3); console.log(array);//[1, 3, 3, 3, 4, 5] console.log(item);//[2]

  • Array.prototype.concat():数组的拼接,不改变原数组,返回一个拼接后的数组。

    let array = [1,2,3,4,5]; let item = array.concat(1); console.log(array);//[1,2,3,4,5] console.log(item);//[1, 2, 3, 4, 5, 1]

  • Array.prototype.sort():排序,改变原数组。

    let array = [1,2,5,4,3]; let item = array.sort(); console.log(array);//[1,2,3,4,5] console.log(item);//[1,2,3,4,5]

  • Array.prototype.reverse():数组倒置,改变原数组。

    let array = [1,2,5,4,3]; let item = array.reverse(); console.log(array);//[3, 4, 5, 2, 1] console.log(item);//[3, 4, 5, 2, 1]

  • Array.prototype.map():对数组的每一项进行处理返回一个新的数组。

    let array = [1,2,5,4,3]; let item = array.map(item => { return item * 2; }); console.log(array);//[1, 2, 5, 4, 3] console.log(item);//[2, 4, 10, 8, 6]

  • Array.prototype.forEach():进行循环

    let array = [1,2,5,4,3]; let sum = 0; let item = array.forEach((item,i) => { sum += item; }); console.log(sum);//15

  • Array.prototype.find():从数组中找到一个满足某种条件的元素;

    let array = [1,2,5,4,3]; let item = array.find((item,i) => { return item == 5; }); console.log(item);//5

  • Array.prototype.filter():把数组中满足条件的数组元素保留下来形成新的数组

    let array = [1,2,5,4,3]; let item = array.filter((item,i) => { return item > 1; }); console.log(item);//[2, 5, 4, 3]

  • Array.prototype.includes():判断数组是否包含某个元素

    let array = [1,2,5,4,3]; console.log(array.includes(1));//true console.log(array.includes(10));//false

  • Array.prototype.keys()

    var arr = ['a', 'b', 'c']; var iterator = arr.keys();

    console.log(iterator.next()); // { value: 0, done: false } console.log(iterator.next()); // { value: 1, done: false } console.log(iterator.next()); // { value: 2, done: false } console.log(iterator.next()); // { value: undefined, done: true }

  • Array.prototype.values()

  • Array.prototype.entries()

  • Array.prototype.reduce()

  • Array.prototype.copyWithin():数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

    var array = [1,2,3,4,5]; var arr = array.copyWithin(2,3); console.log(arr);//[1, 2, 4, 5, 5]

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这