JavaScript中的Array(数组)对象

目录

一、Array数组对象

1、介绍

2、创建数组对象并赋值

3、访问数组元素

二、Array对象属性

1、constructor属性

2、length属性

3、prototype属性

三、Array对象的常用方法

1、isArray()

2、concat()

3、pop()

4、shift()

5、push()

6、unshift()

7、reverse()

8、sort()

9、some()

10、every()

11、filter()

12、find()

13、findIndex()

14、slice()

15、splice()

16、includes

17、indexOf()

18、join()

19、toString()

20、fill()

21、forEach()

22、map()


一、Array数组对象

1、介绍

  • JavaScript中的数组对象(简称:数组),使用单独变量名存储一组值;
  • 数组是引用类型数据;
  • 数组的索引值从0开始,第一个元素在索引为0处;
  • JavaScript中频繁使用;

2、创建数组对象并赋值

// 1、使用Array()构造函数 创建数组对象 然后赋值
let arr1 = new Array();
arr1[0] = "元素1";
arr1[1] = "元素2";
arr1[2] = "元素3";
console.log("创建的第1个数组arr1:", arr1);// 2、使用Array()构造函数 创建数组对象的同时赋值
let arr2 = new Array("A", "B", "C", "D");
console.log("创建的第2个数组arr2:", arr2);// 3、使用数组字面量 创建数组对象并赋值
let arr3 = [1, 2, 3, 4, 5];
console.log("创建的第3个数组arr3:", arr3);

3、访问数组元素

通过指定数组名和索引值,来访问数组中的元素;

let arr = [1, 2, 3, 4, 5];
console.log("获取数组中的第1个元素:", arr[0]);
console.log("修改前的第4个元素:", arr[3]);
console.log("修改数组中的第4个元素:", arr[3] = 8);
console.log("修改后的第4个元素:", arr[3]);

二、Array对象属性

序号属性描述
1constructor返回创建数组对象的原型函数;
2length设置或返回数组元素的个数(数组长度);
3prototype允许你向数组对象添加属性或方法;

1、constructor属性

let newArr = [1, 2, 3, 4, 5];
console.log("constructor属性:", newArr.constructor);

2、length属性

let newArr = [1, 2, 3, 4, 5];
console.log("length属性:", newArr.length);

3、prototype属性

Array.prototype.user = "zyl";
Array.prototype.getLastItem = ()=>{return newArr[newArr.length - 1];
}let newArr = [1, 2, 3, 4, 5];
console.log("使用prototype定义的属性user:", newArr.user);
console.log("使用prototype定义的方法getLastItem():", newArr.getLastItem());

三、Array对象的常用方法

序号方法描述返回值是否影响原数组
1isArray()判断对象是否为数组;Boolean值;
2concat()拼接多个数组,并返回结果;拼接后的新数组;
3pop()移除数组中的最后一个元素;被移除的元素;
4shift()移除数组中的第一个元素;被移除的元素;
5push()向数组末尾多个插入元素;数组长度;
6unshift()向数组起始位置插入元素;数组长度;
7reverse()反转数组;反转后的原数组;
8sort()对数组进行排序;排序后的原数组;
9some()判断数组中是否包含指定条件的元素;Boolean值;
10every()判断数组中的每个元素是否均符合指定条件;Boolean值;
11filter()筛选出所有符合条件的元素组成的数组;新数组;
12find()筛选出第一个符合条件的数组元素;数组元素;
13findIndex()查找第一个符合条件元素的索引值;数组元素索引值;
14slice()用于截取数组;截取后的新数组;
15splice()给数组中添加或删除元素;被删除元素组成的新数组;
16includes()判断数组中是否包含指定元素;Boolean值;
17indexOf()查找数组中指定元素的索引值;索引值;
18join()用于将数组元素连接成一个字符串;字符串;
19toString()用于将数组元素连接成一个字符串;字符串;
20fill()使用固定值填充数组;数组;
21forEach()使数组中的每个元素都执行一次回调函数;无;
22map()通过指定方法,处理数组中的每个元素;处理后元素依次组成的新数组;

1、isArray()

Array.isArray(obj)
  • 该方法用来判断传入的对象是否为数组;
  • obj,为必填参数,表示要判断的对象;
  • 如果是数组,返回true;否则返回false;
  • 不影响原数组;
let obj = {name:"zyl"};
let arr = [1, 2, 3, 4, 5];
console.log("判断是否为数组:", Array.isArray(obj));
console.log("判断是否为数组:", Array.isArray(arr));

2、concat()

array1.concat(array2, array3,..., arrayX)
  • 该方法用来连接多个数组;
  • array2, array3,..., arrayX 为必须参数(1-x个),表示要拼接的数组;
  • 返回连接后的新数组;
  • 原数组不变;
// 2、concat()方法
let arr1 = [1, 2, 3, 4, 5];
let arr2 = ["A", "B", "C", "D"]
console.log("拼接后的arr1和arr2:", arr1.concat(arr2, arr2));

 

3、pop()

array.pop();
  • 该方法用来删除数组的最后一个元素;
  • 无参数;
  • 返回被删除的元素;
  • 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.pop());
console.log("原数组:", arr);

4、shift()

array.shift()
  • 该方法用来删除数组中的第一个元素;
  • 无参数;
  • 返回被删除的第一个数组元素;
  • 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.shift());
console.log("原数组:", arr);

5、push()

array.push(item1, item2, ..., itemX)
  • 该方法用来在数组末尾插入元素;
  • item1, item2, ..., itemX为要插入的元素;
  • 返回插入元素后的数组长度;
  • 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.push(6, 7, 8));
console.log("原数组:", arr);

6、unshift()

array.unshift(item1, item2, ..., itemX)
  • 该方法用来在数组起始位置插入元素;
  • item1, item2, ..., itemX为要插入的元素;
  • 返回插入元素后的数组长度;
  • 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.unshift(6, 7, 8));
console.log("原数组:", arr);

7、reverse()

array.reverse()
  • 该方法用来反转数组元素;
  • 无参数;
  • 返回反转后的原数组;
  • 改变原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.reverse());
console.log("原数组:", arr);

8、sort()

array.sort(sortfunction)
  • 该方法用来对数组元素进行排序;
  • sortfunction为可选参数,规定排序顺序,必须是函数;
  • 返回排序后的原数组;
  • 改变原数组;
  • 注意:默认升序,需要倒序的话,可以传入排序函数,也可以结合reverse()方法实现;
let arr = [6, 2, 9, 4, 5];
console.log("返回值:", arr.sort());
console.log("原数组:", arr);

9、some()

array.some(function(currentValue,index,arr), thisValue)
  • 该方法用于检测数组中,是否包含有符合指定条件的元素;
  • 只要有一个符合条件的元素则返回true,都不满足则返回false;
  • 不影响原数组;
  • 不会对空数组进行检测,直接返回false;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.some((item)=>{return item > 2 ;
}));
console.log("原数组:", arr);console.log("空数组:", [].some((item)=>{return item > 2 ;
}));

10、every()

array.every(function(currentValue,index,arr), thisValue)
  • 该方法用于检测数组中的每个元素是否都符合指定条件;
  • 每个元素都符合条件则返回true,否则返回false;
  • 不影响原数组;
  • 不会对空数组进行检测,直接返回true;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.every((item)=>{return item > 2 ;
}));
console.log("原数组:", arr);console.log("空数组:", [].every((item)=>{return item > 2 ;
}));

11、filter()

array.filter(function(currentValue,index,arr), thisValue)
  • 该方法用于筛选数组中所有符合条件的元素;
  • 返回筛选出来的元素组成的新数组;
  • 不影响原数组;
  • 对于空数组,不会进行操作,直接返回[];
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.filter((item)=>{return item > 2 ;
}));
console.log("原数组:", arr);console.log("空数组:", [].filter((item)=>{return item > 2 ;
}));

12、find()

array.find(function(currentValue, index, arr), thisValue)
  • 该方法用于筛选数组中第一个符合条件的元素;
  • 返回筛选出来的数组元素;
  • 不影响原数组;
  • 对于空数组,不会执行回调函数,直接返回undefined;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.find((item)=>{return item > 2 ;
}));
console.log("原数组:", arr);console.log("空数组:", [].find((item)=>{return item > 2 ;
}));

13、findIndex()

array.findIndex(function(currentValue, index, arr), thisValue)
  • 该方法用于筛选数组中第一个符合条件元素的索引值(数组元素的索引值从0开始);
  • 返回筛选出来的数组元素的索引值, 如果没有符合条件的元素返回 -1;
  • 不影响原数组;
  • 对于空数组,不会执行回调函数,返回-1;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.findIndex((item)=>{return item > 2 ;
}));
console.log("原数组:", arr);console.log("空数组:", [].findIndex((item)=>{return item > 2 ;
}));

14、slice()

array.slice(start, end)
  • 该方法用来截取数组,并返回截取后的新数组;
  • start为可选参数,为开始截取的位置(截取的时候包含);可以为负数,表示在数组中从后往前的位置;
  • end为可选参数,为截取的结束位置(截取的时候不包含);可以为负数,表示数组中从后往前的位置;end必须大于start;
  • 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.slice(1, 4));
console.log("返回值:", arr.slice(-2));
console.log("返回值:", arr.slice());
console.log("原数组:", arr);

15、splice()

array.splice(index,howmany,item1,.....,itemX)
  • 该方法用于给数组中添加元素或删除元素;
  • index 为必选参数,表示进行添加或删除的起始位置(操作时包含该位置);
  • howmany 为可选参数,必须是数字,表示要删除的元素个数,可以为0;若未传入,则默认为所有元素;
  • item1,.....,itemX 为可选参数,表示要添加到数组的新元素;
  • 改变原数组;
let arr1 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr1.splice(1, 4));
console.log("arr1的原数组:", arr1);let arr2 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr2.splice(2));
console.log("arr1的原数组:", arr2);let arr3 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr3.splice(0, 2 , 7, 8));
console.log("arr1的原数组:", arr3);

16、includes

array.includes(searchElement, fromIndex)
  • 该方法用于查找数组中是否包含指定元素;
  • searchElement 为必选参数,表示要查找的元素;
  • fromIndex 为可选参数,表示查找的起始索引值(查找时包含该位置);若该值大于数组长度,直接返回false;
  • 若包含,则返回true,否则返回false;
  • 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.includes(4));
console.log("arr的返回值:", arr.includes(3, 2));
console.log("arr的返回值:", arr.includes(2, 3));
console.log("arr的原数组:", arr);

17、indexOf()

array.indexOf(item,start)
  • 该方法用来查找数组中指定元素的索引值;
  • item 为必选参数,表示要查找的指定元素;
  • start 为可选参数,表示查找的起始位置;
  • 若查到该元素,则返回元素索引值,否则,返回-1;
  • 不影响原数组; 
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.indexOf(4));
console.log("arr的返回值:", arr.indexOf(3,4));
console.log("arr的原数组:", arr);

18、join()

array.join(separator)
  • 该方法用来将数组中的所有元素连接成一个字符串;
  • separator 为可选参数,表示连接使用的分隔符,默认为逗号【,】;
  • 返回连接后的字符串;
  • 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.join());
console.log("arr的返回值:", arr.join('--'));
console.log("arr的原数组:", arr);

19、toString()

array.toString()
  • 该方法用来将数组中的所有元素连接成一个字符串,使用逗号【,】分隔;
  • 无参数;
  • 返回连接后的字符串;
  • 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("arr的返回值:", arr.toString());
console.log("arr的原数组:", arr);

20、fill()

array.fill(value, start, end)
  • 该方法使用固定值替换数组元素;
  • value 为必选参数,表示要替换成的值;
  • start 为可选参数,表示开始填充的位置(填充时包括该位置); 
  • end 为可选参数,表示填充的结束位置(填充时不包括该位置),默认到数组结束;
  • 返回替换后的数组;
  • 改变原数组;
let arr1 = [1, 2, 3, 4, 5];
console.log("arr1的返回值:", arr1.fill(8));
console.log("arr1的原数组:", arr1);let arr2 = [1, 2, 3, 4, 5];
console.log("arr2的返回值:", arr2.fill(8, 2, 4));
console.log("arr2的原数组:", arr2);

21、forEach()

array.forEach(callbackFn(currentValue, index, arr), thisValue)
  • 该方法使数组中的每个元素,均调用一次回调函数;
  • 无返回值;
  • 不影响原数组;
  • 空数组不会执行回调函数;
let arr = [1, 2, 3, 4, 5];
arr.forEach((item, index, arr)=>{item++ console.log(`${arr}中的第${index+1}个元素为${item}`);
})
console.log("原数组:", arr);

 

22、map()

array.map(function(currentValue,index,arr), thisValue)
  • 该方法通过指定函数,处理数组中的每一个元素;
  • 返回经过处理的元素依次组成的新数组;
  • 不影响原数组;
let arr = [1, 2, 3, 4, 5];
console.log("返回值:", arr.map((item)=>{return 'map' + item;
}));
console.log("原数组:", arr);

=======================================================================

每天进步一点点~!

数组的操作也太常用了吧,多看看多看看!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

压缩算法LZW

LZW算法 步骤如下: 初始化字典:创建一个初始字典,其中包含所有可能的输入符号。 输入处理:读取输入数据,并将第一个输入符号作为当前模式。 模式匹配和字典更新:从输入中读取下一个符号,并将…

高性价比宠物空气净化器分享,希喂、霍尼韦尔、有哈PK

近期,家中的小猫咪仿佛化身为行走的“蒲公英”,掉毛现象愈发严重,家中每个角落乃至空气中都弥漫着难以忽视的猫毛,衣物更是无一幸免,披上了毛茸茸的“外衣”。更令人啼笑皆非的是,就连不经意间清理的眼屎中…

React 组件 API

React 组件 API React 组件 API 是 React 应用程序开发中的核心部分,它提供了一系列的接口和方法,使得开发者能够创建和管理组件的状态、属性以及生命周期。在本篇文章中,我们将深入探讨 React 组件 API 的各个方面,包括组件的定…

VQA视觉问答系统

这是一个典型的多模态问题,融合了CV与NLP的技术,计算机需要同时学会理解图像和文字。 Joint embedding 首先,图像和问题分别由CNN和RNN进行第一次编码得到各自的特征,随后共同输入到另一个编码器中得到joint embedding,最后通过解码器输出答案。 值得注意的是,有的工作…

k8s 答疑

1 如何修复容器中的 top 指令以及 /proc 文件系统中的信息呢? 这段自问自答的内容解释了如何通过使用 lxcfs 来修复 Docker 容器中 top 指令和 /proc 文件系统中的信息。让我们分步骤来详细说明: 背景信息 在容器化环境中,通常会遇到一个问题,即容器中的一些命令(如 to…

Java核心技术【十八】Java集合框架精讲:List、Set、Map

Java集合框架精讲:List、Set、Map的使用详解与代码示例 Java集合框架是Java编程中不可或缺的一部分,它提供了一系列容器类,用于存储和操作不同类型的数据集。在Java集合框架中,List、Set和Map是最常用的三种集合类型,…

小红书运营教程02

小红书大致会分享10篇左右。微博、抖音、以及视频剪辑等自媒体运营相关技能以及运营教程相关会陆续的进行分享。 上次分享涉及到的对比,母婴系列,或者可以说是服装类型,不需要自己过多的投入,对比知识类博主来说,自己将知识讲述出来,然后要以此账号进行变现就比较麻烦,…

道可云元宇宙每日资讯|山东出台人形机器人产业发展路线

道可云元宇宙每日简报(2024年7月1日)讯,今日元宇宙新鲜事有: 山东出台人形机器人产业发展路线 近期,山东省工业和信息化厅等部门印发《山东省促进人形机器人产业创新发展实施方案(2024—2027年&#xff0…

如果这时你还不清理C盘,那只能眼睁睁看着电脑越来越卡 直到系统崩溃

如果这时候你还不清理C盘,那只能眼睁睁看着电脑越来越卡 直到系统崩溃。很多人就是想偷懒,当然这是人的天性,明明知道自己的C盘空间就那么大,一天天看着C盘空间越来越小,还不去清理C盘。 这样的人有两种,一…

CesiumJS【Basic】- #048 绘制闪烁线(Primitive方式)

文章目录 绘制闪烁线(Primitive方式)- 需要自定义着色器1 目标2 代码2.1 main.ts绘制闪烁线(Primitive方式)- 需要自定义着色器 1 目标 使用Primitive方式绘制闪烁线 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesiu

软件开发案例参考

前言:基于平台现有需求进行新功能模块开发与实现,以下内容为部分源码解析,仅提供一些思路参考,不予以客观指导,毕竟条条大路通罗马嘛; 语言:C# 工具:visual studio 2017/visual st…

【MySQL List插入】MySQL List格式数据插入

其中id为对应的函数名&#xff0c;useGeneratedKeys是否主键自动生成&#xff0c;keyProperty主键关联的属性。 <foreach collection"list" item"element" index"index" separator",">确定集合类型&#xff0c;item每个元素表示…

C++基础(二):C++入门(一)

C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式 等。熟悉C语言之后&#xff0c;对C学习有一定的帮助&#xff0c;本篇博客主要目标&#xff1a; 1. 补充C语言语法的不足&#xff0c;以及C是如何对C语言设计…

【RabbitMQ实战】邮件发送(直连交换机、手动ack)

一、实现思路 二、异常情况测试现象及解决 说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认机制 、消费确认机制 、消息的重新投递 、消费幂等性, 二、实现思路 1.简略介绍163邮箱授权码的获取 2.编写发送邮件工具类 3.编写RabbitMQ配置文件 4.生产者发起调用…

高考失利咨询复读,银河补习班客服开挂回复

补习班的客服在高考成绩出来后&#xff0c;需要用专业的知识和足够的耐心来回复各种咨询&#xff0c;聊天宝快捷回复软件&#xff0c;帮助客服开挂回复。 ​ 前言 高考成绩出来&#xff0c;几家欢喜几家愁&#xff0c;对于高考失利的学生和家长&#xff0c;找一个靠谱的复读补…

全面了解机器学习

目录 一、基本认识 1. 介绍 2. 机器学习位置 二、机器学习的类型 1. 监督学习 2. 无监督学习 3. 强化学习 三、机器学习术语 1. 训练样本 2. 训练 3. 特征 4. 目标 5. 损失函数 四、机器学习流程 五、机器学习算法 1. 分类算法 2. 聚类算法 3. 关联分析 4. …

Qt入门教程(一):Qt使用的基本知识

目录 Qt简介 新建项目 构建目录和工作目录 构建目录 工作目录 项目结构 项目配置文件 .pro 用户文件 .user 主文件 main.cpp 头文件 dialog.h 源文件 dialog.cpp 帮助文档 三种查询文档的方式&#xff1a; 文档的重点位置&#xff1a;​编辑 调试信息 Qt简介 Qt…

java 代码块

Java中的代码块主要有三种类型&#xff1a;普通代码块、静态代码块、构造代码块。它们的用途和执行时机各不相同。 普通代码块&#xff1a;在方法内部定义&#xff0c;使用一对大括号{}包围的代码片段。它的作用域限定在大括号内&#xff0c;每当程序执行到该代码块时就会执行其…

全平台7合一自定义小程序源码系统功能强大 前后端分离 带完整的安装代码包以及搭建教程

系统概述 这款全平台 7 合一自定义小程序源码系统是专为满足各种业务需求而设计的。它整合了多种功能&#xff0c;能够在不同平台上运行&#xff0c;为用户提供了全方位的体验。无论你是企业主、开发者还是创业者&#xff0c;这款系统都能为你提供强大的支持。 代码示例 系统…

crewAI实践(包含memory的启用)--AiRusumeGenerator

crewAI实践--AiRusumeGenerator 什么是crewAIAiRusumeGenerator功能效果展示开发背景开发步骤1. 首先得学习下这款框架原理大概用法能够用来做什么&#xff1f; 2. 安装crewAI以及使用概述3. 写代码Agents.pyTasks.pymian.py关于task中引入的自定义工具这里不再赘述 什么是crew…