首页 > 编程语言 >JavaScript基础篇3【数组】

JavaScript基础篇3【数组】

时间:2024-03-31 21:32:59浏览次数:28  
标签:arr JavaScript arr1 python 元素 基础 数组 var

今日学习内容

什么是数组

简单理解就是用于临时存储同类数据,本质上是一种具有顺序的特殊对象【当然其实是可以存储不同的数据类型的,只是说那样做很少,所以一般就如前一样理解】

数组的定义

JavaScript中有两种定义数组的方式:

  • 实例化Array对象【称之为“完整形式”】
    • var arr = new Array();        //定义一个空数组
      
      var arr = new Array(元素1,元素2,...元素n);        //正常情况下
      
      var arr = new Array((元素1,元素2),(元素1,元素2));             //定义二维数组
      
      var arr = new Array(5)  //代表着数组长度为5,输出结果为5 x empty
  • 直接使用[]定义数组【称之为“简写形式”】
    • var arr = [];           //定义一个空数组
      
      var arr = [元素1,元素2,...,元素n];        //正常情况下
      
      var arr = [[1,2],[1,2]];       //二维数组
      
      var arr = [1,,,4,5];           //输出结果为:[1, empty x 2, 4,5]

      二者区别在于:后者【[]】可以定义部分元素为空的数组【如上代码最后一行】,前者【Array】不行

数组的基本操作

获取数组元素

每个数组元素都有一个下标,获取数组元素也是通过元素下标来实现的

var arr = ['北京','上海','广州','成都','杭州'];
document.write(arr[3]);            //输出结果为成都
document.write(arr[5]);            //输出结果undefined【越界】

元素的下标是从0开始的,而不是从1开始的

获取数组长度

  • var arr1 = [];
    var arr2 = [1,2,3,4,5];
    document.write(arr1.length+"<br/>");            //输出结果为0
    document.write(arr2.length);                    //输出结果为5

    除了可以用 数组名.length来获取数组的长度以外,还可以通过对length属性赋值从而改变数组的长度,始终与length设置的长度保持一致。如下:

  • var arr1 = ['java','python','c++'];
    arr1.length = 4;            //输出结果为 ['java','python','c++',empty];
    
    //如果设置length的值大于数组本身的长度时,会用empty来填充
    
    
    arr1.length = 2;            //输出结果为 ['java','python'];
    
    //如果设置length的值小于数组本身的长度时,会从下标较大的开始删除数组元素
    
    
    var arr2 = [];
    arr2.length=3;              //输出结果为 [empty x 3]
    
    //如果设置的是一个空数组,输出的结果会是empty

数组元素赋值

同样是利用索引来进行操作

var arr1 = ['java','python','c++'];
arr1[2] = 'javascript';
document.write(arr[2])                //输出结果为javascript

//将JavaScript赋值给索引为2的地方,替换原来的哪个c++

arr1[3] = 'javascript'
document.write(arr1);         //输出结果为['java','python','c++','javascript'];

//索引越界直接在后面追加

添加数组元素

1.push()                        //追加到最后得到一个新数组【常用】

var arr1 = ['java','python','c++'];
arr1.push('javascript');      //输出结果为['java','python','c++','javascript']

两者都可以同时添加多个元素,返回的都是添加的元素值,会改变数组的结构

  2.unshift                       //追加到开头得到一个新数组     

  

var arr2 = ['java','python','c++'];
arr2.unshift('javascript');
//输出结果为['javascript','java','python','c++']

删除数组元素

1.pop()                                        //从数组最后开始删除得到一个新数组【常用】

var arr1 = ['java','python','c++'];
arr1.pop();
//输出结果为['java','python']

返回的都是它们删掉的元素值,会改变数组的结构

2.shift()                                       //从开头开始删除得到一个新数组

var arr1 = ['java','python','c++'];
arr1.shift();
//输出结果['python','c++']

数组的遍历

1、for循环【常用】

var arr = ['javascript','java',python];
var length = arr.length;
for(var i = 0; i < length; i++){
    console.log(arr[i]);
}

2、forEach()【不能使用for循环中的break和continue】

var arr = ['a','b','c'];
arr.forEach(function(value,index,array){
    document.write(value,index);
})

数组元素定位

1、indexOf()      //按照下标从小到大的顺序开始找,如果有就返回对应元素的下标值,无就返回-1

2、lastIndexOf() //按照下标从大到小的顺序开始找,同上

//随便用一种都是可以的

var arr = ['a','b','c'];
var s1=arr.lastIndexOf('a');
alert(s1);                        //返回值为0

var arr = ['a','b','c'];
var s1=arr.lastIndexOf('d');
alert(s1);                        //返回值为-1

数组排序

1、冒泡排序【遍历整个数组,将当前元素与后续元素挨个进行大小比较,当前元素小于所比较的则往前排,大于所比较元素就往后排,一轮一轮地直到完成从小到大的顺序】

2、插入排序

3、sort()【常用,默认是比较utf-16编码来进行比较】

注意:先了解,后面详细学习的时候会单独重点写!!

数组相关方法

1、reverse()               //翻转数组

var arr = ['a','b','c'];
arr.reverse();
document.write(arr);            //输出结果为[c,b,a]

2、concat()                //合并两个或多个数组,并且不会改变原数组

var arr = ['a','b','c'];
var arr2 = ['d','e','f'];
var arr3 = ['g','h','i'];
var s1=arr.concat(arr2).concat(arr3);
document.write("["+s1+"]");            //输出结果为[a,b,c,d,e,f,g,h,i]

3、slice()                   //用于从现有数组中拷贝元素生成一个新数组

<script>
	var arr = ['a','b','c','d','f'];
	
    var s1 = arr.slice(0,3);			//从零开始,往后数3个
	
    var s2 = arr.slice(2);				//从下标2开始往后所有
       
    var s3 = arr.slice();				//全部
    
    document.write("["+s1+"]");
    document.write("["+s2+"]");
    document.write("["+s3+"]");
</script>

5、join()                    //用于将数组元素拼接成字符串

<script>
		var arr = ['a','b','c','d','f'];
		var s1 = arr.join('-');			    //[a-b-c-d]
		var s2 = arr.join();				//a,b,c,d
		document.write("["+s1+"]");
		document.write("["+s2+"]");
</script>

标签:arr,JavaScript,arr1,python,元素,基础,数组,var
From: https://blog.csdn.net/2301_78701955/article/details/137088492

相关文章

  • 代码随想录第10天:栈和队列基础操作
    语言:Java参考资料:代码随想录 232.用栈实现队列力扣题目链接(opensnewwindow)使用栈实现队列的下列操作:push(x)–将一个元素放入队列的尾部。pop()–从队列首部移除元素。peek()–返回队列首部的元素。empty()–返回队列是否为空。示例:MyQueuequeue......
  • lowbit 树状数组
    ......
  • (1)基础项目之二选一选择器
    这个项目是b站视频第三个视频,是一个非常基础的项目,主要学习vivado以及开发板的使用。vivado创建工程不再赘述,值得注意的是板子的型号选择xc7a35tfgg484-2,其中2为速度等级,如下图所示:  FPGA的开发流程如下: VIVADOIDE的各个部分的功能如下:  下面......
  • 操作系统基础概念
    操作系统概念概念和定义定义:操作系统(OperatingSystem,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。直观的例子:打开Windows操作系统的“任务管理......
  • 【C语言基础篇】字符串处理函数(四)strcmp的介绍及模拟实现
    目录 一、strcmp函数介绍函数原型函数参数功能描述返回值使用示例二、strcmp函数模拟实现思路代码测试         个人主页:    倔强的石头的博客        系列专栏 :C语言指南         C语言刷题系列  系列文章【C语言基础篇......
  • Java基础入门--第三章--面向对象(上)
    面向对象(上)1.1面向对象的思想2类与对象2.1类的定义2.2对象的创建与使用2.3对象的引用传递2.4访问控制权限3封装性3.1为什么要封装3.2如何实现封装4构造方法4.1定义构造方法4.2构造方法的重载5this关键字5.1使用this关键字调用本类中的属性5.2使用this......
  • 实时数仓项目《二》-利用chatgpt prompt完成基础维表的创建
    系列文章:实时数仓项目《一》-实时数仓架构-CSDN博客目录5.ods->dwd:维表关联方案及维表加工、导入hbase5.1维表关联方案5.2退维后结果去向5.3创建维表:基础业务库表数据同步到hbase5.3.1cdc读取mysql数据,生成临时映射表5.3.2将目标表映射到Hbase中,生成临时映射......
  • 代码随想录算法训练营第34天| 1005. K 次取反后最大化的数组和、134. 加油站、135. 分
    1005.K次取反后最大化的数组和题目链接:K次取反后最大化的数组和题目描述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数......
  • PTA (指针和数组 )R7-2 在数组中查找指定元素
    R7-2在数组中查找指定元素分数10入门全屏浏览切换布局作者 王秀单位 福州大学输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则......
  • JAVA编程基础与面向对象程序设计(基础)
    1.1标识符与命名规范 标识符:java中的类,方法,变量,包命名的符号。标识符规则(1)只能由字母,数字,下划线,美元符号组成,并且不能一数字开头。(2)java标识符大小写敏感,长度无限制。(3)标识符不可以是java的关键字与保留字。关键字:java中预先定义好的一些有特别意义的单词,它们构......