JS-Array

2023-10-27

JS-Array

数组的基本使用

<script type="text/javascript">
	//在JS中用[]代表数组
	console.log([]);
	//数组在js中属于引用类型的数据
	console.log(typeof []);//object
	//数组可以有序存储很多任意类型的数据
	console.log([1,true,NaN,"吃饭",null,function(){}]);
	//数组在使用的时候,可以将数组赋值给变量进行存储,通过访问变量名字就可以操作数组
	var arr = ["吃饭","睡觉","打豆豆",1,NaN,false];
	console.log(arr);
</script>
<script type="text/javascript">
	var arr = ["吃饭","睡觉","打豆豆",1,NaN,false];
	//读取数据,利用枚举法获取数组里面的元素
	console.log(arr[0]);//吃饭
	console.log(arr[1]);//睡觉
	console.log(arr[4]);//NaN
	console.log(arr[99]);//undefined
	console.log(arr[-99]);//undefined
	//修改已有的数据
	arr[0] = "学习";
	arr[4] = "帅呆了";
	console.log(arr);
	//给数组添加新的数据
	arr[6] = "明天";
	arr[99] = "么么哒";
	console.log(arr);
</script>

数组length属性

<script type="text/javascript">
	var arr = [1,2,3,4,5,6,[7,8,9],"asdf"];
	//length属性
	//主要作用是获取到元素的总个数
	console.log(arr.length);//8
	console.log(arr[7].length);//4
	console.log(arr[6].length);//3
	console.log(arr[6][1]);//8
	
	//数组的length属性:经常结合循环语句遍历数组里面的元素
	var arr2 = ["张三","李四","王五"];
	for (var i = 0; i < arr2.length; i++) {
		console.log(arr2[i]);
	}
</script>

数组的push与pop

<script type="text/javascript">
	var arr = ["小鸡","发财","白班","一同"];
	//push可以在数组的尾处添加一个或多个元素
	arr.push("曹操","刘备");
	console.log(arr);
	
	//pop可以在数组的尾处移除一个元素
	arr.pop();
	console.log(arr);
</script>

数组的unshift和shift

<script type="text/javascript">
	var arr = ["猫","狗","猪"];
	//unshift:可以向数组的头部添加一个或多个元素
	arr.unshift("鸡","鸭");
	console.log(arr);
	//shift:可以向数组的头部移除一个元素
	arr.shift();
	console.log(arr);
</script>

数组的join和reverse

<script type="text/javascript">
	var arr = [1,2,3,4,5,6];
	//join:可以通过某一个字符,将数组转化为字符串,对起始数组没有影响
	var str = arr.join("*");
	console.log(str);//1*2*3*4*5*6
	console.log(arr);//[1,2,3,4,5,6]
	
	//reverse:将数组倒置
	arr.reverse();
	console.log(arr);//[6, 5, 4, 3, 2, 1]
</script>

数组的indexOf和includes

<script type="text/javascript">
	var arr = ['吃饭','睡觉','烫头'];
	//indexOf:可以获取某个元素的索引值
	console.log(arr.indexOf("吃饭"));//0
	console.log(arr.indexOf("打豆豆"));//-1
	
	//includes:检测数据是不是当前数组的元素
	console.log(arr.includes("打豆豆"));//false
	console.log(arr.includes("睡觉"));//true
</script>

数组的slice和splice

<script type="text/javascript">
	var arr = ["张飞","刘备","关羽","马超","黄忠","曹操"];
	//slice:切割某一个数组,并返回一个新的数组,对起始数组没有影响
	//传参至少一个元素,最多两个参数【都是数组的索引值】,包含起始,不包含结束
	var arr2 = arr.slice(2);
	console.log(arr2);//["关羽","马超","黄忠","曹操"]
	var arr3 = arr.slice(1,4);
	console.log(arr3);//["刘备","关羽","马超"]
</script>
<script type="text/javascript">
	var arr = [1,2,3,4,5,6];
	//splice:可以对当前数组进行切割、插入、替换元素操作
	//切割:第一个参数切割起始位置索引值
	//传递一个
//	var arr1 = arr.splice(2);
//	console.log(arr1);//[3, 4, 5, 6]
//	console.log(arr);//[1, 2]

	//传递两个参数:第一个参数是起始位置,第二个参数切割长度
//	var arr1 = arr.splice(2,3);
//	console.log(arr1);//[3, 4, 5]
//	console.log(arr);//[1, 2, 6]

	//插入:在索引值2的位置切割出0个元素,插入一个元素么么哒
//	var arr1 = arr.splice(2,0,"么么哒");
//	console.log(arr1);//[]
//	console.log(arr);//[1,2,"么么哒",3,4,5,6]
	
	//替换:从索引值为2的位置切割出2个元素,使用领,名进行替换
	var arr1 = arr.splice(2,2,"领","名");
	console.log(arr1);//[3, 4]
	console.log(arr);//[1, 2, "领", "名", 5, 6]
</script>

练习

<script type="text/javascript">
	//声明一个函数rev(arr,n),返回一个数组
	//如【1,2,3,4,5】n=1返回【5,1,2,3,4】
	function rev(arr,n){
		for (var i = 0 ;i < n ; i++) {
			var str = arr.pop();
			arr.unshift(str);
		}
		return arr
	}
	var arr = [1,2,3,4,5];
	var newArr = rev(arr,1);
	console.log(newArr);
</script>
<script type="text/javascript">
	//封装一个函数Max(arr),需要将数组中最大的数值返回
	function Max(arr){
		var max = arr[0];
		for (var i = 1; i < arr.length; i++) {
			if(max < arr[i]){
				max = arr[i];
			}
		}
		return max;
	}
	var result = Max([1,2,5,8,9,6,3,10,2,1,55,33]);
	console.log(result);
</script>
<script type="text/javascript">
	//封装一个函数uniq(arr),将数组中的重复元素去除
	function uniq(arr){
		var result = [];
		for (var i = 0;i < arr.length;i++) {
			if(result.indexOf(arr[i])<0){
				result.push(arr[i]);
			}
		}
		return result;
	}
	var result = uniq([1,2,2222,2,2,3,3,3,5,4,6,5,4]);
	console.log(result);
</script>

堆栈空间

<script type="text/javascript">
	//基本数据类型值相等判断:依据的是数值是否相等
	//这两个值100存储于栈空间
	var a = 100;
	var b = 100;
	console.log(a==b);//true
</script>
<script type="text/javascript">
	//引用类型的值存储在堆空间
	//a和b比较的是地址
	var a = [];
	var b = [];
	console.log(a==b);//false
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS-Array 的相关文章

  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 如何使用 selenium 和 Mocha 获取 xPath() 选择的锚标记的文本

    我已经成功选择了 a 标签 我想显示锚标记的文本 但无法这样做 我正在使用 selenium mocha javascript 和 phantomJS 这是我的脚本 详细 var assert require assert var test
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 将 javascript 整数转换为字节数组并返回

    function intFromBytes x var val 0 for var i 0 i lt x length i val x i if i lt x length 1 val val lt lt 8 return val func
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如何获取 UIWebView 中元素的位置?

    我在 iPad 程序中加载了 html 的 UIWebView 通过使用 webkit column width 我将 html 分为几列 padding 0px height 1024px webkit column gap 0px we
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas

随机推荐

  • day34 贪心

    1005 K次取反后最大化的数组和 按照一定的策略 先绝对值排序 再负数修正 最后对绝对值最小的数进行替换 再求和 134 加油站 判断是否可以从i 到达i 1 判断gas总量是否大于cost 135 分发糖果 采用两次遍历计算糖果数 pa
  • KEIL3新建TA89C51工程

    1 新建一个文件夹命名为TEST 如图所示 2 在TEST文件夹里面新建一个LED的空文件夹 如图所示 3 打开keil3依次点击Project New uVision Project 如图所示 4 找到最开始新建的文件夹TEST 并打开里
  • 学计算机编程配置需求,编程对电脑配置要求高吗?

    算法是编程的灵魂 是程序的核心组成 系统对程序算法的编译就是程序生成的过程 大型的应用程序如我们日常用的OFFICE办公工具 大家爱玩的吃鸡游戏等 其算法复杂 没有几年的苦心研发 编写代码 优化算法结构是看不出来了 由于这类程序的复杂性与庞
  • 二叉树知识点概

    树 一 树读常考性质 节点数 总度数 1 即除了根节点 每个节点都有一个入度 前驱 度为m的树和m叉树 度为m的树第i层至多有 m i 1
  • vscode中嵌入cppcheck进行静态检查,包含插件使用方法

    1 vscode下载插件cpp check lint 如图 下载好之后按ctrl shift p打开用户设置 user setting 在设置中追加加入以下代码 cppcheck配置 cpp check lint enable true 启
  • 贵州酒店集团过405拦截

    文章目录 一 为什么返回405 二 开发者怎么解除限制 一 为什么返回405 云盾是阿里巴巴集团多年来安全技术研究积累的成果 结合阿里云云计算平台强大的数据分析能力 为中小网站提供如安全漏洞检测 网页木马检测以及面向云服务器用户提供的主机入
  • QT多平台移植经验分享及问题解析

    Qt5与Qt4对比 没有Qt4用到的qws Qt5新增了QPA系统 基于QPA使得Qt5移植到一个新平台非常简单而又具有极强的底层扩展能力 同时 C 11 也获得全面支持 使用 C 11 新特性更为方便 下面讲述将Qt5 4 1移植到目标板
  • QQ红包金额分配算法

    最近对红包金额分配感兴趣 便整理了一个较简单的分配算法 思路 主要是通过随机函数对金额随机分配 由于金额与份数不断变化 如何保证分配前等概率呢 本例是将金额等分 取得均值 但第一份取左和取右等概率 故其最大值为右份边界 代码 include
  • linux copy_from_user 头文件,宋宝华: Linux为什么一定要copy_from_user ?

    网上很多人提问为什么一定要copy from user 也有人解答 比如百度一下 但是这里面很多的解答没有回答到点子上 不能真正回答这个问题 我决定写篇文章正式回答一下这个问题 消除读者的各种疑虑 这个问题 我认为需要从2个层面回答 第一个
  • MySQL5.7忘记root密码-最简单的修改密码方法

    我的上一篇博客 MySQL5 7忘记root密码 手动修改密码教程 讲的还算详细 对于Windows10 DOS命令下的修改MySQL数据库密码可能出现的一些问题都做了讲解 相比上一篇 这一片会简单化描述 1 停止MySQL服务 去任务管理
  • 性能测试LoadRunner深入浅出

    Da01 一 初步概念 1 功能测试 测试软件产品的功能是否达到要求 如 ATM取款 在线取款 是否成功 转账成功 表示功能实现了 一个人 2 性能测试 测试软件产品的性能是否达到要求 包括 时间性能 多用户共同使用时的性能 如 ATM取款
  • 作业:递归实现插入排序和在o(nlgn)时间复杂度内寻找和为定值的两个元素

    1 递归实现插入排序 基本思想 可以把插入排序看作递归 地排序A 1 n 1 然后插入a n 到已经排好序的序列a 1 n 1 中 一下是实现算法 C 描述 VS205中调试通过 class InsertSort static void M
  • 智能合约编写之Solidity的高级特性

    前言 FISCO BCOS使用了Solidity语言进行智能合约开发 Solidity是一门面向区块链平台设计 图灵完备的编程语言 支持函数调用 修饰器 重载 事件 继承和库等多种高级语言的特性 在本系列前两篇文章中 介绍了智能合约的概念与
  • console.log机制

    介绍 前端在调试的时候很多都使用了console log 但大家都知道他的机制吗 遇到问题 在想要获取一个对象的某一个属性的属性值的时候 因为发送了ajax请求 然后在mounted阶段打印对象的属性时为空 而打印对象显示要获取的属性有值
  • Tomcat优化(一)-线程池优化

    tomcat处理请求的过程 在accept队列中接收连接 当客户端向服务器发送请求时 如果客户端与OS完成三次握手建立了连接 则OS将该连接放入accept队列 在连接中获取请求的数据 生成request 调用servlet容器处理请求 返
  • 能详细介绍审核任务分配有那些算法

    审核任务分配是一个有关人工智能和机器学习的研究领域 它的目的是分配审核任务 例如审核文本内容 给合适的审核员 以保证审核任务的高效性和准确性 下面是一些常见的审核任务分配算法 贪心算法 这是一种简单的分配算法 它按照审核员的审核能力和审核任
  • 记一次Gitlab升级, 14.6.0-ee到14.10.0-ee

    升级原因 Gitlab无法删除项目 点删除按钮后项目依然存在 打开后提示 No repository 不确定是否这个版本问题 想通过版本升级重装一遍看能否解决问题 升级过程 时间 2022 04 27 当前最新版本GitLab Enterp
  • 那些你可能不知道的浏览器奇技淫巧

    平常工作少不了用浏览器 以下分享一些浏览器的使用技巧 更好的有助于你的工作 ps 以下技巧均在 Chrome 浏览器下测试的 网页长截图 按 F12 弹出控制台 按 ctrl shift p 弹出输入框 输入full 选择 capture
  • 二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放 一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。 对于两个格子坐标(x1,y1),(x2,y2)

    题目 二货小易有一个W H的网格盒子 网格的行编号为0 H 1 网格的列编号为0 W 1 每个格子至多可以放一块蛋糕 任意两块蛋糕的欧几里得距离不能等于2 对于两个格子坐标 x1 y1 x2 y2 的欧几里得距离为 x1 x2 x1 x2
  • JS-Array

    JS Array 数组的基本使用