热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS数组的应用二

5.数组中新增元素可以通过修length长度以及索引号增加数组元素5.1通过修改length长度新增数组元素可以通过修改length长度来实现数组扩容的目的length属性是

5.数组中新增元素


  • 可以通过修length长度以及索引号增加数组元素

5.1通过修改length长度新增数组元素

可以通过修改length长度来实现数组扩容的目的
length属性是读写的

<script>//1.新增数组元素 修改lenvar arr &#61; [&#39;red&#39;,&#39;green&#39;,&#39;blue&#39;];console.log(arr.length);arr.length &#61; 5; //我们数组的长度修改为了5 里面应该有5个元素console.log(arr);console.log(arr[3]);console.log(arr[4]);</script>

  • 其中索引号是4, 5, 6的空间没有给值,就是声明变量未给值,默认值就是undefined.

5.2通过修改数组索引新增数组元素

* 可以通过修改数组索引的方式追加数组元素
* 不能直接给数组名赋值&#xff0c;否则会覆盖掉以前的数据

这种方式常用。

<script>//2.新增数组元素 修改索引号 追加数组元素var arr1 &#61; [&#39;red&#39;,&#39;green&#39;,&#39;blue&#39;];arr1[3] &#61; &#39;pink&#39;;console.log(arr1);arr1[4] &#61; &#39;hotpink&#39;;console.log(arr1);arr1[0] &#61; &#39;yellow&#39;; //这里是替换原来的数组元素console.log(arr1);arr1 &#61; &#39;有点意思&#39;;console.log(arr1); //不要直接给 数组名赋值 否则里面的数组元素都没有了</script>

循环添加数组&#xff1a;

新建一个数组&#xff0c;里面存放10个整数( 1~10)
核心原理:使用循环来追加数组。
1、声明一个空数组arr。
2、循环中的计数器i可以作为数组元素存入。
3、由于数组的索引号是从0开始的&#xff0c; 因此计数器从0开始更合适&#xff0c;存入的数组元素要&#43;1。

<script>var arr&#61;[];for(var i &#61; 0; i< 100; i&#43;&#43;){//arr &#61; i; 不要直接给数组名赋值 否则以前的元素都没了arr[i]&#61;i &#43; 1;}console.log(arr);</script>

筛选数组案例&#xff1a;


  • 要求:将数组[2, 0,6, 1, 77,0, 52,0, 25, 7]中大于等于10的元素选出来,放入新数组。

案例分析&#xff1a;

1、声明一个新的数组用于存放新数据newArr.

2、遍历原来的旧数组&#xff0c; 找出大于等于10的元素。

3、依次追加给新数组newArr.

<script>//方法一var arr &#61; [2, 0,6, 10,1, 77,0, 52,0, 25, 7];var newArr &#61; [];var j &#61; 0;for(var i &#61;0;i<arr.length;i&#43;&#43; ){if(arr[i]>&#61;10){//新数组应该从0开始 依次递增newArr[j]&#61;arr[i];j&#43;&#43;;}}console.log(newArr);//方法二var arr&#61;[2, 0,6, 10,1, 77,0, 52,0, 25, 7];var newArr &#61; [];//刚开始 newArr.lengthfor(var i&#61;0;i<arr.length;i&#43;&#43;){if(arr[i] >&#61;10){//新数组索引号应该从0开始 依次递增newArr[newArr.length]&#61;arr[i];}}console.log(newArr);</script>

数组案例&#xff1a;

将数组[2,0,6,1,77,0,52&#xff0c;0,25&#xff0c;7]中的0去掉后&#xff0c;形成一个不包含0的新数组。

案例分析&#xff1a;
1、需要一个新数组用于存放筛选之后的数据。
2、遍历原来的数组&#xff0c;把不是0的数据添加到新数组里面(此时要注意采用数组名&#43;索引的格式接收数据)。
3、新数组里面的个数&#xff0c; 用length 不断累加。

<script>var arr &#61; [2,0,6,1,77,0,52,0,25,7];var newArr &#61; [];for(var i&#61;0;i<arr.length;i&#43;&#43;){if(arr[i] !&#61; 0){newArr[newArr.length] &#61; arr[i];}}console.log(newArr);</script>

数组翻转案例


案例分析

将数组[‘red’, ‘green’, ‘blue’,‘pink’, ‘purple’] 的内容反过来存放
*
1、声明一个新数组newArr
*
2、把旧数组索引号第4个取过来(arr . length - 1)&#xff0c; 给新数组索引号第0个元素(newArr . length)
*
3、我们采取 递减的方式 i–

<script>//数组翻转var arr &#61; [&#39;red&#39;, &#39;green&#39;, &#39;blue&#39;,&#39;pink&#39;, &#39;purple&#39;];var newArr &#61; [];for(var i &#61;arr.length -1; i>&#61;0; i--){newArr[newArr.length] &#61; arr[i];}console.log(newArr);</script>

数组排序&#xff08;冒泡排序&#xff09;

冒泡排序:是-种算法,把一系列的数据按照-定的顺序进行排列显示(从小到大或从大到小)。

例如,我们可以将数组[5, 4, 3, 2, 1]中的元素按照从小到大的顺序排序,输出: 1 ,2.3,4,5

<script>//冒泡排序var arr &#61; [4,2,1,3,5,10];for(var i&#61;0;i<&#61;arr.length -1;i&#43;&#43;){ //外层循环管趟数for(var j&#61;0;j<&#61;arr.length-i-1;j&#43;&#43;){ //里面的循环管 每一趟的交换次数//内部交换2个变量的值 前一个和后一个数组元素相比较if(arr[j]>arr[j&#43;1]){var temp &#61; arr[j];arr[j]&#61;arr[j&#43;1];arr[j&#43;1]&#61;temp;}}}console.log(arr);</script>

欢迎关注微信公众号&#xff1a;黑马金牌编程

在这里插入图片描述


推荐阅读
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
笑看斜阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有