javascript数组之基本操作+数组属性

【回眸】Tessy集成测试软件使用指南(一)新手使用篇 这个专栏的文章前4篇都在记录如何使用Tessy进行单元测试,集成测试需要有一定单元测试基础,且做集成测试之前,需要做好单元测试,否则将会大幅增加软件单元代码纠错的代价。集成测试所花费的时间通常远远超过单元测试。如果直接从单元测试到系统测试,结果往往是不理想的。集成测试可以检测由于单元相互交互而导致的错误,通常由一组专业的测试人员执行。 阅读详情

基本操作

一、存取数据元素

数组的值可以通过自然数索引访问进行读写操作

1.单位数组:数组名[下标索引]

2.多维数组:数组名[外层数组下标][内层元素下标]

3.特性:数组长度是弹性的,可自由伸缩

               数组下标从0开始

              下标类型:数值&非数值(转为字符串、生成关联数组、下标作为对象属性的名字)

              数组元素可以添加到对象中

备注:数组的下标可以是一个得出非负整数的变量或表达式

var a1=[1,2,3,4];
console.log(a1[0]); //1
var i=1;
console.log(a1[i]); //2
console.log(a1[++i]); //3

二、增加数组元素:使用“[]”运算符指定一个新下标

a1.push(5); // 将一个或多个新元素添加到数组结尾,并返回数组新长度

a1.unshift(5);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度

a1.splice(deletePos,deleteCount);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

这三个方法放到下一篇再详细介绍。

三、删除数组元素:delete数组名[下标]

a1.pop(); //移除最后一个元素并返回该元素值

a1.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移

a1.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

这三个方法一样放到下一篇再详细介绍。

四、遍历数组元素:

方式1:

var a = [1,2,3,4,5,6];
for(var i =0; i<a.length; i++){
alert(a[i]);
}

这是最常用的,历遍数组,代码将依次弹出1至6

方式2:

还有一种常用的for(var 数组元素变量 in 数组)

var a = [1,2,3,4,5,6];
for(var e in a){
alert(e);
} 

还是依次弹出1至6,for…in是历遍对象(数组是特殊的对象)对象,用在数组上,因为数组没有属性名,所以直接输出值,这结构语句用在对象上,例如下面

方式3:

var a = {x:1,y:2,z:3};
for(var e in a){
alert(e    + ":" + a[e]);
} 

此时e取到的是属性名,即 x、y、x,而要取得值,则采用 数组名[属性],所以 a[e] 等同于 a[“x”]、a[“y”]、a[“z”]

数组属性

1.constructor:引用数组对象的构造函数,表示创建对象的函数。

object.constructor //object是对象或函数的名称。

constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。

constructor 属性保存了对构造特定对象实例的函数的引用。

例如:

x = new String("Hi");

if (x.constructor == String) // 进行处理(条件为真)。

或

function MyFunc {

// 函数体。

}

y = new MyFunc;

if (y.constructor == MyFunc) // 进行处理(条件为真)。

对于数组来说:y = new Array();

2.length:返回数组长度

Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。下面是演示改变length属性的例子:

var arr=[12,23,5,3,25,98,76,54,56,76];//定义了一个包含10个数字的数组

alert(arr.length); //显示数组的长度10

arr.length=12; //增大数组的长度

alert(arr.length); //显示数组的长度已经变为12

alert(arr[8]); //显示第9个元素的值,为56

arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃

alert(arr[8]); //显示第9个元素已经变为"undefined"

arr.length=10; //将数组长度恢复为10

alert(arr[8]); //虽然长度被恢复为10
但第9个元素却无法收回,显示"undefined", 由上面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以显式的设置,它也有可能被隐式修改。JavaScript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时,length属性的值将被设置为所使用元素索引的值加1。例如下面的代码:
var arr=[12,23,5,3,25,98,76,54,56,76];

alert(arr.length);

arr[15]=34;

alert(arr.length);

代码中同样是先定义了一个包含10个数字的数组,通过alert语句可以看出其长度为10。随后使用了索引为15的元素,将length赋值为15,即arr[15]=34,这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。事实上,使用new Array()形式创建的数组,其初始长度就是为0,正是对其中未定义元素的操作,才使数组的长度发生变化。

由上面的介绍可以看到,length属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。因此对length属性的深入了解,有助于在开发过程中灵活运用。

3.prototype:通过增加属性和方法扩展数组定义

返回对象类型原型的引用。prototype 属性是 object 共有的。

objectName.prototype

objectName 参数是object对象的名称。

说明:用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。

对于数组对象,以下例子说明prototype 属性的用途。

给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入Array.prototype,并使用它。

function array_max( ){
    var i, max = this[0];
    for (i = 1; i < this.length; i++){
      if (max < this)
          max = this;
      }
      return max;
    }
    Array.prototype.max = array_max;
    var x = new Array(1, 2, 3, 4, 5, 6);
    var y = x.max( );
}


该代码执行后,y 保存数组 x 中的最大值,或说 6。


注意力机制篇 | YOLOv8改进之在C2f模块添加EMA注意力机制(附2种改进方法) EMA(Exponential Moving Average)注意力机制是一种用于增强模型性能的注意力机制,它通过对模型的特征图进行加权平均来提取更有用的特征信息。具体来说,EMA注意力机制通过引入一个权重因子来调整特征图中每个位置的重要性,从而使模型能够更好地关注重要的特征。🌈 阅读详情

相关推荐

CocosCreator视频播放黑屏?手把手教你封装VideoPlayer组件解决Web环境问题

本文针对Cocos Creator在Web环境下视频播放黑屏等常见问题,提供了一套工程化的VideoPlayer组件封装解决方案。文章深入剖析了浏览器自动播放策略、DOM样式隔离等核心挑战,并手把手教你实现一个健壮的管理器,涵盖兼容性处理、性能优化与内存管理,确保视频播放稳定流畅。

plum99的博客 598

vue 如何监听数组对象中的选中属性

<!-- 添加双向绑定属性用于监听输入,再通过@input实时输入,将该属性所在下标传到该函数里 --> <input v-model="spec.price" @input="specPrice(sIndex)" id="spec-price" class="ns-input" type="text" placeholder="请输入价格"> // 监听规格价格 specPrice(index){ // 通过下标进行本地监听,实时更新 this.$watch(() .

weixin_40365953的博客 982

555定时器呼吸灯电路制作全攻略:从仿真到实物搭建(附避坑指南)

本文详细介绍了使用555定时器制作呼吸灯电路的完整流程,从基础原理到实物搭建,包括电路设计、元件选择、仿真验证、焊接技巧及调试优化。特别提供了避坑指南,帮助电子爱好者快速掌握这一经典DIY项目,实现美观的呼吸灯效果。

weixin_33734785的博客 402

数组的基本操作

数组是线性数据结构。 由一块连续的内存空间组成 用于储存相同类型的数据元素 数组分成2种类型: 固定数组: 初始化的时候,分配一块内存空间,之后不会重新分配内存空间 长度的含义是指数组容纳最多元素的数量,并且必须包含这么多的元素 动态数组: 初始化的时候,分配一块内存空间,之后可能重新分配空间 长度的含义是指当前包含元素的数量,元素数量可以小于数组最大容量,并且允许不断地新增元素 如果元素数量超过现有的数组容量,会重新给数组分配内存空间,并拷贝已有元素。这称之为扩容。 结合数组的结构,其

672

Masta调用Geometry Modeller(Space Claim)进行根据三维模型快速建模设置方法

masta中调用ANSYS的space claim的设置方法

xifegnlie的博客 244

Agent应用实践之三 - 基础:AgentScope-ReActAgent源码解析

本章通过总结AgentScope的核心类,再通过分析ReActAgent调用大模型的底层源码原理。使我们基本了解了Agent的基本原理,这个实现方式与OpenClaw使用pi-mono的Agent基础框架是一致的。了解完ReActAgent的基本原理,下一章我们会将一下SpringBoot集成方式的代码原理,这两章是我们构建后续内容的基本框架。

代码让AI扣 470

数组的常用属性和方法

数组的常用属性和方法 数组的属性: length:1.告诉我们数组的长度:数组名.length 2.通过该属性可以改变数组的长度 数组的常用方法: 1)unshift:在数组最前面添加一个或者多个元素,多个元素之间用逗号隔开,返回值是新数组的长度。 var a = [2,3,4,5,6]; var b = a.unshift(1);//在最前面插入1 alert(a); a

Judian6974的博客 4893

详解【计算机类&面试真题】军队文职考试——第7期:C盘格式化需要注意什么?| 两台笔记本连起来后ping不同,可能存在哪些问题?| 模拟信号到数字信号是如何转化的?| 计算机由哪些部件组成?

这是我分享的系列面试知识——军队文职(计算机类)面试真题详解(第7期)。本期分享:两台笔记本连起来后ping不同,你觉得可能存在哪些问题?模拟信号到数字信号是如何转化的?谈一谈计算机由哪些部件组成?如何加强计算机网络安全管理?若通过域名无法访问,而通过IP地址能访问。这是怎么回事?你将如何解决?谈一谈C盘格式化需要注意什么?开放类题目:如果应聘的岗位和你想的差距很远,你怎么办?

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1922

js 中prototype运用(数组)

转自:http://www.cnblogs.com/chiname/articles/216517.html(侵删)  /*   *  方法:Array.removeAt(Index)   *  功能:删除数组元素.   *  参数:Index删除元素的下标.   *  返回:在原数组上修改数组   */  Array.prototype.removeAt = function(Index...

Juunnry的博客 2205

相位编码脉冲压缩信号的理论研究与 Matlab 实现

通过实际的代码示例,我们展示了如何生成信号、进行相位编码、传输信号、相位解码和脉冲压缩的步骤。相位编码脉冲压缩信号是通过在发射端对信号进行相位编码,并在接收端对信号进行相位解码来实现的。其主要原理是在发射端将信号的频率进行调制,使得信号具有宽带特性,然后在接收端通过匹配滤波器对信号进行解调和压缩,从而提高信号的分辨率和抗干扰能力。相位编码脉冲压缩信号是一种在信号处理中常用的技术,用于提高信号的分辨率和抗干扰能力。可以使用 Matlab 中的信号生成函数生成一个宽带脉冲信号,例如矩形脉冲信号或高斯脉冲信号。

CyberWizarDD的博客 904

fanuc机器人I/O分配

FANUC机器人在和其他外部设备进行通讯时,需要对信号进行配置。 在机器人处于UOP自动分配状态时,系统会自动检索已配对设备,并分配相应的机架号。 当我们需要手动对信号进行分配时,可参考以下机架号进行配置。 不同的通讯协议对应的机架号不同,外部通讯协议常用的机架号参考下表: 序号 机架号 通讯类型 1 0 Process I/O 2 1-15

haier123888的博客 1万+

数组的属性和方法

1. Array 对象属性: -- constructor: 返回对 创建此对象的数组函数的引用 -- length: 设置或返回数组中元素的数目(length属性不是只读的) -- prototype : 向对象添加属性和方法 2. Array 对象方法 -- 栈方法: push() 可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的...

欣儿砸的博客 1437

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JavaScript数组基本操作、属性

JavaScript中的数组基本操作 1、数组的创建 var array = new Array(); //创建一个数组 var array = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 要说明的是,虽然虽然该方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。 var array = new Array(element0,element1,...,element

Fancy_vae的博客 488

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

js数组相关操作操作方法

数组 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是种将一组数据存储在单个变量名 下的优雅方式。 //普通变量一次只能存储一一个值 var num = 10; //数组一次可以存储多个值 var arr = [1,2,3,4,51; JS中创建数组有两种方式:1.利用new创建数组 var 数组名= new Array() ; var arr = new Array() ;//创建一个新的空数组 //注意A要大写 2.利用数组字面量创建数组 ..

weixin_47791640的博客 303

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

js数组

1、什么是数组 数组就是一组数据的集合 其表现形式就是内存中的一段连续的内存地址 数组名称其实就是连续内存地址的首地址 2、关于js中的数组特点 数组定义时无需指定数据类型 数组定义时可以无需指定数组长度 数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的) 创建数组的语法: var arr=[值1,值2,值3]; ...

baijiao1314的博客 178

JS中Function函数(方法)对象与数组(Array)对象

Function:函数(方法)对象 1.创建:     1. function方法名称(形式参数列表){          方法体         }     2. let 方法名= function(形式参数列表){     &n

LiMgYe_OK的博客 1889

js对象属性增删和数组元素增删

经常要用到js操作对象和数组,所以写下自己对对象和数组的理解: 1。给对象添加属性; var user = {}; user["name"] = 'xiaoming'; console.log(user.name);//xiaoming 2.给对象删除属性 var user = {}; user["name"] = 'xiaoming'; console.log(user.name);//

chentao866的博客 577

Javascript篇章三:js数字,数组与日期

<font size=4 color=#FF0000>本文要点:</font> 1.数值方法 2.数组以及数组属性和方法 3.日期 4.js数据类型转换大全 5.js的休眠函数 6.js正则表达式(RegExp)

AhriLove 283

改进VSG虚拟同步机实现三相逆变器并离网无缝切换仿真

虚拟同步机(VSG)技术通过模拟同步发电机的转动惯量和阻尼特性,为电力电子变换器提供电网支撑能力。其核心原理是在逆变器控制中引入虚拟惯量环节,使电力电子设备具备类似传统同步机的频率响应特性。这种技术在新能源并网和微电网控制中具有重要价值,能够有效提升系统稳定性,特别是在光伏逆变器和风力发电等应用场景中。基于改进VSG控制的预同步算法,通过优化电压、频率和相位同步策略,实现了三相逆变器在并网与离网模式间的快速平滑切换。该方案显著降低了切换过程中的电流冲击和电压波动,为微电网运行提供了可靠的技术支撑。

weixin_34074740的博客 387

菜鸟笔记-数组基础

一 创建方法 1. 空数组 var Obj = new Array(); 2. 指定长度数组 var Obj = new Array(size); 3. 制定元素数组 var Obj = new Array(元素1, 元素2, 元素3,.....元素N) 4. 单维数组 var Obj = new Array(元素1, 元素2, 元素3,.....元素N) 5. 多维数组 var Obj...

weixin_30415113的博客 80

vue-router 导航守卫完全指南:从全局守卫到组件内守卫的完整拦截机制

本文以 vue-router(Vue 2 官方路由)的**导航守卫(Navigation Guards)**为主题,系统讲解如何通过重定向或取消来"守卫"每一次路由导航。守卫分为全局(`beforeEach` / `beforeResolve` / `afterEach`)、路由级(`beforeEnter`)与组件内(`beforeRouteEnter` / `beforeRouteUpdate

gitblog_00269的博客 519

JavaScript-01-数组

创建方法 a. 空数组:var obj = new Array(); b. 指定长度数组: var obj = new Array(Size); c. 指定元素数组 : var obj = new Array(元素1,元素2,…元素N); d. 单维数组 : var obj = [元素1,元素2,…元素N]; e. 多维数组 : var a = new Array([数组序列1],[数组序列...

weixin_43645482的博客 168

数组删除指定元素_计算机科学研究者陶贤斌站在巨人的肩膀上总结JavaScript数组...

8.1 创建方法空数组 var Obj = new Array();指定长度数组 var Obj = new Array(Size);指定元素数组 var Obj = new Array(元素1,元素2,元素3,…,元素N);单维数组 var Obj = new Array(元素1,元素2,元素3,…,元素N);多维数组 var a = new Array([数组序列1],[数组序列2],…,[数...

weixin_39947306的博客 73

了解JS数组元素及属性

JavaScript 数组元素及属性

二哈喇子! 1251

js数组与字符串的相互转化

[b]数组与字符串的相互转化[/b] [code="js"] var obj="new1abcdefg".replace(/(.)(?=[^$])/g,"$1,").split(","); //字符串转化为数组 var obj2 = "new2abcdefg".split("");

专注于 Java 后端架构、微服务、分布式、前端及 AI 领域的技术分享,是开发者获取硬核知识、交流实战经验的专业博客。 156

js数组的操作

1、数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值 要说明的是,虽然第...

weixin_30790841的博客 62
上一篇: Javascript数组之创建
下一篇: BUG:android真机调试 opendir failed, Peermission denied
freedom1993
博客等级 码龄12年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值