js数组方法总结,数组遍历方法,判断数组方法总结

目录

    • 原生数组方法
      • 数组方法用法说明
      • 数组乱序和数组拆解
      • 会改变数组的方法
      • 不改变数组的方法
      • JS 中的数组存储
    • 判断数组的方法
    • 数组遍历的方法
      • forEach和map方法有什么区别

原生数组方法

1.数组和字符串转换方法:toString,toLocalString,join,其中join可以指定转换为字符串的分隔符
2.数组尾部操作方法:push,pop,push是向尾部添加多个元素,pop删除最后一个元素
3.数组首部操作方法:shift,unshift,shift向首部删除,unshift添加
4.连接数组的方法:concat
5.截取数组的方法:slice
6.数组插入的方法:splice,影响数组
7.查找特定项的索引方法,indexOf,lastIndexOf
8.迭代方法:every,some,filter,map,forEach
9.数组归并方法:reduce,reduceRight

数组方法用法说明

• map: 遍历数组,返回回调返回值组成的新数组
• forEach: 无法break,可以用try/catch中throw new Error来停止
• filter: 过滤
	array.filter(function(currentValue,index,arr), thisValue)
	// currentValue:必须,当前元素的值
	// index:可选,当前元素的索引
	// arr:可选,当前元素属于的数组对象
	// thisValue:执行回调使用,用作this
// filter: 过滤
var ages = [32, 33, 16, 40];
	
function checkAdult(age) {
    return age >= 18;
}

function myFunction() {
    document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
• some: 有一项返回true,则整体为true
	array.some(function(currentValue,index,arr),thisValue)
	
	
• every: 有一项返回false,则整体为false
	array.some(function(currentValue,index,arr),thisValue)
	
• join: 把数组转换成字符串
	○ array.join(separator)
		separator可选,指定要使用的分隔符,|,“,”
		
	var fruits = ["Banana", "Orange", "Apple", "Mango"];
	var energy = fruits.join();
	//Banana,Orange,Apple,Mango
	
• push / pop: 末尾添加多个元素,改变原数组, push 返回数组长度, pop 删除数组最后一个元素,并返回删除元素;
	array.push(item1, item2, ..., itemX)
	array.pop()
• unshift / shift: 头部推入和弹出,改变原数组,unshift 向开头添加,返回数组长度,shift 删除第一个元素返回原数组第一项 ;
	○ array.shift()
	○ array.unshift(item1,item2, ..., itemX)
• sort(fn) / reverse: 排序与反转,改变原数组
	升序:array.sort(function(a,b){return a-b});,字母排序
	降序:points.sort(function(a,b){return b-a});
	array.reverse()
• concat: 连接数组,不影响原数组, 浅拷贝
• slice(start, end): 返回截断后的新数组,不改变原数组,(数字,可以用正负值)
• splice(start, number, value...): 返回删除元素组成的数组,value 为插入项,改变原数组
	○ start:从数组哪个下标开始删除元素
	○ number:从这个下标往后删除几个元素
	○ value:要添加到数组中的新的值,从删除的地方开始添加
• indexOf / lastIndexOf(value, fromIndex): 查找数组项,返回对应的下标
	○ fromindex:开始检索的位置
	var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
	var a = fruits.lastIndexOf("Apple");
	//输出:6
	
	lastIndexOf:查找元素在数组中最后一次出现的位置;如果找不到,返回-1
	
• reduce / reduceRight(fn(prev, cur), defaultPrev): 累加器
	○ array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
		§ initialValue 传递给函数的初始值
		§ total	必需。初始值, 或者计算结束后的返回值。
		§ currentValue	必需。当前元素
		§ currentIndex	可选。当前元素的索引
		§ arr	可选。当前元素所属的数组对象。
	var numbers = [65, 44, 12, 4]; 
	function getSum(total, num) { 
		return total + num; 
	} 
	function myFunction(item) { 
		document.getElementById("demo").innerHTML = numbers.reduce(getSum); 
	}
	//输出125
	○ reduceRight()从右往左累加

数组乱序和数组拆解

	• 数组乱序:
	var arr= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
	arr.sort(function () {
	   	return Math.random() - 0.5;
	});
	• 数组拆解: flat: [1,[2,3]] --> [1, 2, 3]
	Array.prototype.flat= function() {
	    returnthis.toString().split(',').map(item=>+item )
	}

会改变数组的方法

Push:原数组会改变
Pop
Shift
Unshift
Sort
reverse

不改变数组的方法

Push:原数组会改变
Array.filter() 会新创建一个数组 将符合条件的值丢进去
Array.concat() 连接多个数组 (拼接在一起) 返回一个新的数组
Array.slice() 对数组中的数据进行截取 放到一个新的数组里返回
Array.join() 将数组通过某个分隔符分割转换成字符串 返回的是一个字符串
Array.map() 对数组的每一项进行处理 返回到一个新的数组里
Array.every() 判断数组中的每一项是否符合规范,都符合返回一个true ,否则返回false
Array.some() 判断数组,如果其中有一项符合条件的话就返回true,都不符合返回false
Array.index0f() 找索引,如果找到则返回相应的索引值,否则返回 -1

JS 中的数组存储

JavaScript 中的数组存储大致需要分为两种情况:
• 同种类型数据的数组分配连续的内存空间,只需要根据索引(指针)直接计算存储位置。
• 非同种类型数据的数组通过哈希映射分配内存空间,首先要计算索引值,如果索引值有冲突还需要二次查找(需要知道哈希的存储方式)。

判断数组的方法

1.通过Object.prototypr.toString.call()判断】
2.通过原型链判断:obj.__proto__ === Array.prototype;
3.通过Array.isArray()判断
4.通过instanceof判断:
5.通过Array.prototype.isPrototypeOf

数组遍历的方法

在这里插入图片描述

forEach和map方法有什么区别

这方法都是用来遍历数组的,两者区别如下:
• forEach()方法会针对每一个元素执行提供的函数,对数据的操作会改变原数组,该方法没有返回值;
• map()方法不会改变原数组的值,返回一个新数组,新数组中的值为原数组调用函数处理之后的值;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Qu1ckdr0p2快速通过HTTP或HTTPS实现文件托管

关于Qu1ckdr0p2 Qu1ckdr0p2是一款功能强大的文件托管工具,在该工具的帮助下,广大研究人员可以快速通过HTTP或HTTPS托管包括Payload和后渗透代码在内的任何文件。 Qu1ckdr0p2提供了别名和搜索功能,相关功能模块位于qu1ckdr0p2-tools库中。默…

半导体管路连接PFA阀门的应用说明

PFA阀门在半导体行业中具有广泛的应用。以下是PFA阀门在半导体行业中的几个应用领域: 1. 超纯水系统:在半导体行业中,超纯水是一个至关重要的介质,用于洗涤和清洁半导体芯片及其他关键器件。PFA阀门由于其优异的耐腐蚀性和高纯度特…

Java设计模式之七大设计原则

七大设计原则 设计原则概述 单一职责原则 定义 一个类仅有一个引起它变化的原因 分析 模拟场景 访客用户 普通用户 VIP用户 代码实现 /*** 视频用户接口*/ public interface IVideoUserService {void definition();void advertisement(); }/*** 访客用户*/ public class…

【容器Docker】Docker学习笔记

1、什么是Docker: Docker 将程序和程序运行所依赖的所有环境都打包到镜像里。“build once, run anywhere”Docker 是容器的一种实现。 Windows 下如何安装Docker: 官方安装教程:Install Docker Desktop on Windows | Docker Docs有两种安装套装&…

【基础篇】YOLO系列之训练环境(GPU)搭建篇

🚀Pytorch环境配置(Windows) 🔨 Anaconda安装 此处下载安装即可 ⭐温馨提示:安装路径不能含有中文,建议不要安在c盘(很占内存) 环境变量配置 编辑系统环境变量 -> 环境变量 ->…

短视频账号矩阵系统源码3年技术服务部署

安装Web服务器:搭建系统需要一个Web服务器,例如Apache或Nginx。 安装PHP环境:PHP是一种服务器端脚本语言,用于处理Web应用程序中的动态内容。你需要安装和配置PHP环境。 一、安装MySQL数据库:抖音短视频SEO矩阵系统需…

React基础巩固日志1

书写了一篇vue3的基础构建之后,不能带着各位一起学习vue3了,因为我要面试上海的前端岗位了,所以从现在开始,我要带着大家一起学习React了。 以下是我使用react书写的要掌握的react的知识点: ** ** 那么下面我们就一一通…

链路状态路由协议——OSPF

文章目录 一、链路状态路由协议-OSPF1. 开放式最短路径优先(OSPF)2. OSPF 原理介绍3. OSPF 报文4. 邻居状态5. Router ID、邻居和邻接6. 邻居发现7. 数据库同步8. 支持的网络类型9. DR 和 BDR10. DR 和 BDR选举11. OSPF 区域13. OSPF 开销14. OSPF 配置1…

二维码怎么分解成链接?提取二维码内容的方法

现在很多内容都会通过二维码来承载,通过扫码的方式来获取内容,当需要提取二维码图片的内容时,一般会通过二维码解码器的功能来实现。那么具体的处理方法分几个步骤呢,可能还有些小伙伴不太清楚具体的使用技巧,那么下面…

网络轻量化的方法(低秩分解、权重量化、权重剪枝/稀疏化、结构化剪枝/稀疏化和神经网络架构学习)

深度卷积神经网络轻量化技术综述 在现代深度学习应用中,轻量化神经网络已成为一个至关重要的研究领域。以下是一些主要的轻量化方法: 低秩分解: 通过技术如奇异值分解(SVD)将神经网络中的权重矩阵近似为低秩矩阵。这种方法特别适…

轨道车辆中的主动悬挂:文献综述(二)

写在前面 发表于Rail. Eng. Science的Active suspension in railway vehicles: a literature survey一文,全面总结了2020年之前轨道车辆领域主动控制方案的各种重要实现。其主要作者,Bin Fu、Rocco Libero Giossi、Rickard Persson、Sebastian Stichel、…

Apache Doris 在奇富科技的统一 OLAP 场景探索实践

导读:随着消费信贷规模快速增长,个人信贷市场呈现场景化、体验感强的特征,精准营销、精细化风险管理以及用户使用体验的优化愈发重要。作为中国卓越的由人工智能驱动的信贷科技服务平台,奇富科技选择将 Apache Doris 作为整体 OLA…

《volatile使用与学习总结:2023-12-17》多层面分析学习java关键字--volatile

一、简介 volatile是java中提供的一种轻量级的同步机制,相比于synchronized更加轻量,因为volatile避免了线程频繁的上下文切换和调度,但是也有缺点,同步性差并且使用起来易出错。 二、并发编程的三个概念 原子性 原子性即一个操…

基于JAVA+SpringBoot+Vue的前后端分离的学校请假管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 系统分为四个角色&…

直播种类之图片直播

图片直播是一种通过即时拍摄,实现即时共享图片的直播模式。通过互联网技术和智能硬件技术的支持,从摄影师按下快门起,实现照片0.2秒钟上传,实现了真正的即拍即传。 它可以通过将摄像头拍摄到的实时画面和声音信号传输到网络平台&…

如何使用AnyTXT Searcher实现远程办公速查异地电脑文件提升工作效率

如何使用AnyTXT Searcher实现远程办公速查异地电脑文件提升工作效率 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过…

Windows本地搭建开源企业管理套件Odoo并实现公网访问

文章目录 前言1. 下载安装Odoo:2. 实现公网访问Odoo本地系统:3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件,是一个一站式全功能ERP及电商平台。 开源性质:Odoo是一个开源的ERP软件,这意味着企…

Amazon CodeWhisperer 体验

文章作者:jiangbei 1. CodeWhisperer 安装 1.1 先安装 IDEA,如下图,IDEA2022 安装为例: 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者…

element plus 日期范围 自定义内容

问题: 按照官网上的自定义内容示例,修改日期选择器没有问题,如果修改日期范围选择器,修改后会丢失日期范围选择时的样式。 解决: 从F12中不难看出日期范围的选择样式来自于.el-date-table-cell 而示例中写的是.cell&…

C++11特性:可调用对象以及包装器function的使用

在C中存在“可调用对象”这么一个概念。准确来说&#xff0c;可调用对象有如下几种定义&#xff1a; 是一个函数指针&#xff1a; int print(int a, double b) {cout << a << b << endl;return 0; } // 定义函数指针 int (*func)(int, double) &print…