javascript之数组操作

【JS】JavaScript 中数组的常用操作方法和对比 JavaScript 中数组的常用操作方法和对比 阅读详情

1、数组的创建

var arrayObj = new Array(); //创建一个数组

var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度

var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值

    要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

2、数组的元素的访问

var testGetArrValue=arrayObj[1]; //获取数组的元素值

arrayObj[1]= "这是新值"; //给数组元素赋予新的值

3、数组元素的添加

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度

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

arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

4、数组元素的删除

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

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

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

5、数组的截取和合并

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

6、数组的拷贝

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向

arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

7、数组元素的排序

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址

arrayObj.sort(); //对数组元素排序,返回数组地址

8、数组元素的字符串化

arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。

toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

二、数组对象的3个属性

1、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的元素,将其赋值为15,即arr[15]=34,这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。事实上,使用new Array()形式创建的数组,其初始长度就是为0,正是对其中未定义元素的操作,才使数组的长度发生变化。

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

2、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[i])

   max = this[i];

   }

   return max;

}

Array.prototype.max = array_max;

var x = new Array(1, 2, 3, 4, 5, 6);

var y = x.max( );

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

3、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) // 进行处理(条件为真)。

 

该文章经过本人整理所得,欢迎转载,转载时请加上本文地址;本文基于 署名 2.5 中国大陆许可协议发布,请勿演绎或用于商业目的,但是必须保留本文的署名 张志涛(包含链接如您有任何疑问或者授权方面的协商,请 给我留言。 
SoC低功耗设计实战:28nm工艺下四核A7的Hierarchical Flow全流程解析 本文深入解析了在TSMC 28nm工艺上,采用Hierarchical Flow(层次化流程)实现四核Cortex-A7 SoC低功耗设计的全流程。文章从项目背景切入,详细探讨了基于UPF的电源规划、时钟树综合、接口时序收敛以及物理验证等关键环节,分享了使用Cadence Innovus等工具进行低功耗物理实现的实战经验与挑战。 阅读详情

相关推荐

Q学习(Q-learning)入门小例子及python实现

一、从马尔科夫过程到Q学习 # 有一定基础的读者可以直接看第二部分 Q学习(Q-learning)算法是一种与模型无关的强化学习算法,以马尔科夫决策过程(Markov Decision Processes, MDPs)为理论基础。 标准的马尔科夫决策过程可以用一个五元组<S,A,P,R,γ>表示,其中: S是一个离散有界的状态空间; A是一个离散的动作空间; P为状态转...

wlm_py的博客 4万+

js创建数组的四种方法【2021.11.13】

参考书籍《JavaScript百炼成仙》 1.直接量定义数组: var arr = [1,2,3]; 2.采用构造函数的方法创建数组对象: var a =new Array(); 3.也是采用构造函数创建数组对象,不过设置了初始长度: var b = new Array(8); 我们都只知道,括号的意思是执行这个函数的函数体,这个函数是有参数的,8就是参数,在这里8表示给数组对象添加一个初始化的长度,可用length验证 4.也是采用构造函数创建数组对象,且在创建的同时给它赋予了初始值“8”

masierty的博客 2万+

别再用Excel硬算传热了!用MATLAB/Octave复现国赛数学建模A题(附完整代码与避坑指南)

本文详细介绍了如何利用MATLAB/Octave高效解决数学建模中的传热问题,替代传统的Excel计算方法。通过复现2018年国赛A题的高温作业服传热模型,从理论推导到代码实现,提供了完整的有限差分法解决方案和参数拟合技巧,帮助读者提升数学建模效率和准确性。

weixin_30512965的博客 379

JavaScript中数组的创建方式及数组常用方法

JS中数组的创建方式及数组常用方法

m0_73727512的博客 1万+

飞书云文档API操作详细介绍

开通云文档API、python程序调用飞书api、飞书获取app_id和app_secret、

Brother_ning的博客 1万+

Unity Hub报错The Hub as encountered a critical error and must close

如果注册表HKEY_LOCAL_MACHINE\SOFTWARE\Unity Technologies\这个目录下有Hub文件,直接删掉然后重装就可以。C:\Users\Administrator\AppData\Roaming\Unity 作者:SevenVee。HKEY_CURRENT_USER\Software\Unity 下所有项,尝试过,卸载重装,清除临时文件无果后,最终决定删除所有与Hub有关的文件。重装unity后可以打开了。结果:卸载重装后还是会出现此问题。结果:重装后还是无法解决。

qq_42345116的博客 3637

JS 创建数组 ( 6种方法 )

JS创建数组可通过字面量、构造函数Array()、Array.of()、Spread运算符、Array.from()等方式,例如:let arr = [1, 2, 3]、let arr = new Array(3)、let arr = Array.of(1, 2, 3)、let arr = [...'abc']、let arr = Array.from({length: 3}, (_, i) => i+1)。

大剑师兰特的GIS世界 4687

DDR为什么需要DQS信号?

本文根据相关书籍和个人经验,谈了一下对DDR中DQS信号作用的理解

weixin_41155581的博客 2万+

【JavaScript】——JS数组的方法(全且详细)

js数组中的方法

qq_50497708的博客 5209

eMMC FFU固件更新实战:从协议解析到设备修复

本文详细解析eMMC FFU固件更新技术,从协议原理到实战操作,涵盖EXT_CSD寄存器操作、命令流状态机解析及专业工具使用指南。通过真实维修案例,展示如何利用FFU机制修复设备故障,并提供高级优化技巧与安全注意事项,是硬件工程师和维修技术人员的实用参考。

weixin_29191761的博客 377

利用RFIDIOt和NFC进行Hitag2密码暴力破解: Python代码实现

RFID即无线射频识别,是一种通信技术,可以通过无线电信号读取、捕获和保存终端上的信息。这项技术在物流、零售、医疗等领域有着广泛的应用。NFC即近场通信,是一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输。Hitag2是一种常见的RFID标签,广泛应用于汽车防盗系统、门禁系统等。由于其安全性在过去被广泛认可,很多设备都采用了这种标签。但近年来随着密码破解技术的发展,Hitag2的安全性受到了一些挑战。

qq_38334677的博客 1561

【Javascript】JS中对于数组的常用操作汇总

在实际应用中,经常需要根据具体需求编写比较函数来实现自定义排序逻辑,比如按照对象的某个属性排序对象数组。map()、find()、some()、sort()

VT_馒头的博客 1737

innovus:给channel加soft blockage

dbGet [dbGet top.fplan.pBlkgs.name finishfp_place_blkg_* -p].boxes就可以获得channel坐标。意思是给30um以下的channel加soft blk,至于channel的坐标,通过抓取该soft blk去获取,比较容易。工具自己加入的placement blockage命名上叫finishfp_place_blkg_*ICC2中有给channel自动加soft blockage的命令,相应的innovus也有类似的命令,我们可以使用。

m0_61544122的博客 480

js数组操作

Js中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性。 文章目录一、对于数组的整体性操作二、数组的存取操作查找元素数组的字符串表示由已有数组创建新数组三、可变函数为数组添加元素从数组中删除元素从数组中间添加和删除元素为数组排序四、迭代器方法不生成新数组的迭代器方法生成新数组的迭代器方法 一、对于数组的整体性操作 对于数组的操作实际操作的是数组的索引 var nums = []; for...

withwz的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaScript JS数组的操作

JavaScript JS数组的操作 数组的操作 数据的循环本质上是。通过生成索引的下标 来获取数组中 的每一个单元存储的具体的数值 for的循环 for ···in和forEach的循环。 for循环可以通过控制循环的次数 来控制变量 for···in 循环一般用于字符串的循环 forEach 的循环一般都是用于数组的循环 数组常用的方法 调用:[]中括号的调用 修改:就是对一个数字的 重新的赋值的过程 删除: 通过控制数组的length的属性来删除末尾的数值 新增:对没有的数值进行赋值 就是对一个数组的

weixin_46688757的博客 235

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

前端JavaScript——js声明定义数组及常用操作

数组的声明: 1、在js中,数组的声明不需要指定其长度 2、在js中,数组可以存放不同类型的数据(一般要求数据中采访同类型的数据) js定义数组: 空数组 一般常用这种形式,数组元素的定义使用[] var arr=[]; var arr1=[9,5,2,7]; 还有一种声明形式; var arr=new array(); 对象数组 var arr2=[{Name:"小牧童",Age:12},{Name:"小蜗牛",Age:9}]; 访问数组: 数组元素的访问(同样使用下标进行访问) 比

m0_48930261的博客 1万+

STM32F407中文手册

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

JavaScript /JS 如何实现数组的创建,增加,删除,遍历等操作???

数组的定义:

余憨憨的学习日记 4549

JavaScript的数组操作神器 linq.js

我个人最喜欢的JavaScript的数组处理第三方库 有时候业务需要,要对数组进行比较复杂的处理,难倒是一点不难,就是感觉麻烦。 由于我自己是一个.net程序员出身,C#语言里对List的支持(LINQ)简直是指哪打哪,舒服到不行,就很怀念这个东西。 有一次遇到业务需求,就去搜了一下javascript linq,居然找到了这个意外收获。 从三年前我知道它就,就再也念念不忘了。 下面三张图,图1...

festone000的专栏 980

java script 数组,JavaScript数组操作函数汇总

js中数组操作函数还是非常多的,今天忽然想到来总结一下,也算是温故而知新吧。不过不会针对每个办法都进行一下总结,只是针对一些比较常用的做个备注一下。这里总结到的 js 数组操作函数有:push,pop,join,shift,unshift,slice,splice,concat(1)push 和 pop这两个函数都是对数组从尾部进行压入或弹出操作。push(arg1,arg2,...)可以每次压入...

weixin_34378815的博客 250

js开发:javascript操作数组

1、数组的创建  以下为引用的内容: var arrayObj = new Array(); //创建一个数组   var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度   var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建

Generon的博客 449

JS(四)JavaScript中的数组操作

substring使用起始索引和结束索引,而substr使用起始索引和长度。substr允许使用负数索引,而substring不支持。substring在处理不合法参数时会转换为 0,而substr则会处理为字符串末尾位置。

无人罪的博客 1022

js数组的操作

js数组的操作 用 js有很久了,但都没有深究过js的数组形式。偶尔用用也就是简单的string.split(char)。这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵呵。学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1、数组的创建 vararrayObj=newArray()...

weixin_30462049的博客 119

js(Javascript)数组操作及数组去重

js(Javascript)数组操作及数组去重 一、数组操作 添加删除: (1)push(x) 将元素添加到数组最末尾 (2)unshift(x) 将元素添加到开头 (3)pop(x)删除最后一个元素 (4)shift(x)删除第一个元素 返回字符串:join() 二、数组去重操作 var arr = [1, 2, 2, 3, 4, 5, 5, 4, 8, 5, 1, 6, 1]; function singleArray(array) { var newArr = [];

weixin_58280614的博客 488

html中js定义数组,javascript数组的定义及操作实例

数组是一组数据的集合,js中,数组里面的数据是可以不同类型的定义数组:1.通过类实例化来创建数组var alist01=new Array(1,2,3);2.通过直接量的方式来创建数组var alist02=[1,2,3];数组操作1.通过length来获取数组成员的个数alert(alist02.length);2.通过下标获取数组成员alert(alist02[0]);3.通过push,pop...

weixin_34039159的博客 766

前端学习——js数组的常用操作

<html> <head> <title>js数组的常用操作</title> <!-- 1;数组的合并var d=arr.concat(b,c); 2:数组指定间隔符转换字符串var e=arr.join("-"); 3: 数组移除最后一个元素并返回var f=arr.pop(); 4: 数组的追加,返回新的...

x1037490413的博客 778
上一篇: freemarker中文乱码解决办法
下一篇: 跟踪监控MYSQL执行的sql语句
java85140031
博客等级 码龄18年 34粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值