javascript数组的定义及其属性和方法的使用

逆向工程实战:如何一步步破解京东APP的sign签名算法(附Frida脚本) 本文详细解析了京东APP的sign签名算法逆向工程实战,通过Frida脚本动态分析Java层和Native层的多层签名机制,揭示商业应用的加密协议设计。文章提供了完整的逆向工程方法论与工具链,帮助开发者深入理解移动应用安全防护体系,提升安全防御能力。 阅读详情

数组

7.1数组的概念

案例:计算5名学生的平均成绩

 var a1,a2,a3,a4,a5;

    a1 = Number(prompt("请输入分数"));

    a2 = Number(prompt("请输入分数"));

    a3 = Number(prompt("请输入分数"));

    a4 = Number(prompt("请输入分数"));

    a5 = Number(prompt("请输入分数"));

    var ave = (a1+a2+a3+a4+a5) / 5;

    alert(ave);

这个程序很简单,但是如果是100人呢,难道要真的复制100遍?

怎么解决?显然需要循环。

但是尝试一下就会发现,循环使用不上,因为无法去控制a1,a2,也就无法循环控制变量a1、a2联系起来。

var a = [];

    var sum = 0;

    for(var i=0; i<5; i++){

        a[i] = Number(prompt("请输入分数"));

        sum += a[i];

    }

    var ave = sum/a.length;

    alert(ave);

这段代码能够实现同样的功能,而且如果是100人的话,只要把循环的条件改为i<100即可,整个程序的结构和代码量和人数多少没有关系。

为什么和人数没有关系?因为和循环结合起来了。

为什么能和循环结合起来呢?因为我们把变量的表示方式改变了,即名称+序号的方式,那么序号是可以用循环变量去控制。

7.2数组的定义与元素访问

定义有三种方式:

(1)var a = [];

(2)Var a = new Array();

(3)Var a = [0,0,0];

访问元素:数组名+下标

a[0] a[3]

需要注意的是下标从0开始,

所以在使用的时候需要注意越界问题,比如5个元素的数组,那么它的下标范围为[0-4],不包括5,5已经越界了。

数组的本质:一组变量的集合,或者说是一组内存单元。只不过对于变量的表示方式使用的是数组名+下标的方式。

7.3数组的常用属性和方法

数组的属性:

length:

(1)告诉我们数组的长度:数组名.length

(2)通过该属性可以改变数组的长度

数组的常用方法:

(1)unshift()在数组的头部添加元素,返回值是新数组的长度

shift():删除数组头部的元素,返回值是删除的头部元素。

(2)indexOf():查找在数组中重复出现的元素第一次出现的位置,返回值是该元素的下标。

lastIndexOf():查找在数组中重复出现的元素最后一次出现的位置,返回值是该元素的下标。

(3)push:在数组的尾部插入元素,返回值是添加元素后数组的长度。

pop():从数组的尾部删除最后一个元素,返回值是删除的元素

(4)slice(开始位置的下标,结束位置的下标):提取数组中指定连续的子数组。前包括,后不包括。

(5)splice(开始删除位置的下标,要删除元素的长度,要选择插入或替换的内容),splice有“剪接”的含义。前面两个参数定义“剪”的部分,第三个参数定义“接”的部分,经过不同的参数组合就可以实现一下三个功能。

①删除操作:删除数组中指定的任意元素

②插入操作:在数组中指定位置插入元素

③替换操作:在数组中替换指定位置的元素

如果有删除元素,则返回删除元素的数组,否则为空。

(6)reverse将数组中的元素倒序输出。在原数组的基础上进行反序输出,不会创建新数组。

(7)map:原数组的映射,经过函数的加工。函数给出前面两个参数,改变的是原数组,不给的话,返回新数组。

一般我们传递的参数都是数组、字符串等类型的数据,有些时候可能需要传递一个函数,那么如何去传递一个函数呢?

var a = [2,4,6,8];

    var b = a.map(fun);

    alert(a);

alert(b);

}

function fun(value,index,self){

return value*value;

}

我们可以将以上内容简写为:

var a = [2,4,6,8];

    var b = a.map(function (value,index,self){

        return value*value;

    });

    alert(a);

alert(b);

这就是匿名函数。

7.4for……in循环

一般而言,我们遍历一个数组用的都是for循环,会对所有元素进行遍历

var arr = [1,2,3,4,5,6];

    for(var n=0; n<arr.length; n++){

        alert(arr[n]);

    }

    alert(arr);

用for……in循环

var arr = [1,2,3,4,5,6];

    for(var i in arr){

        arr[i];

    }

alert(arr);

结果与上面的代码相同

但是for与for……in还是有区别的

var arr = [1,2,3,4,5,6];

    arr[10] = 10;

    for(var n=0; n<arr.length; n++){

        alert(arr[n]);

    }

    alert(arr);

var arr = [1,2,3,4,5,6];

    arr[10] = 10;

    for(var i in arr){

        alert(arr[i]);

    }

alert(arr);

从结果可以看出for……in不会遍历没有定义的元素

此外for……in还可遍历对象

var student = {

        name:"张三",

        sex:"男",

        age:29

    };

    for(var p in student){

        document.write(student[p]+"<br>");

}

结果显示的是student对象的所有属性值,值得注意的一点是这里要查看对象的某个属性值用的是数组的形式而不是对象名+“.”+属性名。

也可以用student[“sex”]访问对象的属性

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法! 本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。 阅读详情

相关推荐

Mac上MySQL出现secure-file-priv为null

在使用MySQL导入导出文件时出现了错误,原因是没有配置secure-file-priv。 我的MySQL版本是8.0.13,使用如下命令查看secure-file-priv。 结果发现secure-file-priv为空,此时需要为它配置一个文件夹。 解决方案: 1)到MySQL的安装目录中去,Mac中是的是 /usr/local/mysql/support-files,该目录下有一...

zhangvalue的博客 5884

JS基础1

1.js的组成 js: ECMAScript + BOM + DOM 语法规范+浏览器对象模型+文档对象模型(操作html+css) 2.js引入方式3种 行内、内嵌、外部 3.变量声明方式及变量命名的规则 方式:1.先声明,后赋值 var = a; a = 1; 2.声明的同时赋值 var a = 1; 3.不使用var声明,直接使用 a = 1; console.log(a); 4.同时声明多个变量,中间用逗号隔开 var a = 1,b = 2; 规则:1.数

Ga_b_c的博客 265

YOLOv8中的C2f模块代码详解

在YOLOv8网络结构中,C2f模块(CSP Bottleneck with 2 Convolutions)是一个关键组件,用于实现跨阶段部分聚合

zzzyyy8的博客 3万+

js面试必考之作用域和闭包

js面试必考之作用域和闭包 作用域介绍 先来看下作用域,看张图片: ​ 自由变量 ​ 一个变量在当前作用域没有定义,但被使用了 ​ 向上级作用域一层一层的去寻找,直到找到为止 ​ 如果到全局作用域还没找到,则报错xxx is not defined 这里面有三个函数,每个函数中都定义这一个变量,a1它的作用域范围是最大红色方框,a2的作用域为中间的方框,a3的作用域为最里面的方框,而在fn3函数 return语句 返回a+a1+a2+a3是,a ,a1,a2,这三个变量在fn3中没有,那么

weixin_44691513的博客 368

UE5.3与Colosseum配置实战:从编译到问题解决的全流程指南

本文提供了在Windows系统下配置UE5.3与Colosseum仿真环境的全流程实战指南。详细介绍了从软件版本选择、源代码获取、编译脚本执行到解决常见编译错误和引擎崩溃问题的具体步骤,旨在帮助开发者高效搭建无人机、机器人等仿真平台,并顺利运行外部API控制。

weixin_29002595的博客 557

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 574

数组的常用方法大全

数组的方法 1. join (原数组不受影响) ​ 该方法可以将数组里的元素,通过指定的分隔符,以字符串的形式连接起来。 返回值:返回一个新的字符串 //将数组用 - 符号连接起来 let arr = [1,2,3,4,5]; let str = arr.join('-'); console.log(str)//str = 1-2-3-4-5; 2. split (原数组不受影响) ​ 该方法是......

U_Are_My_Halo的博客 7万+

微信小程序 - 详细实现随机生成订单号,微信小程序创建订单号思路,不重复订单号生成的方法,小程序自动生成固定规则的订单号流水号(必须是唯一不重复的订单号,生成唯一订单号)详细生成方法,示例代码教程最新

微信小程序,vue2,vue3,订单号,流水号思路,微信小程序 详细实现随机生成订单号(JavaScript),随机生成商户订单号,根据当前时间随机生成流水号或者订单号,微信小程序之商家订单,订单号随机生成器,自动生成固定规则的订单号(前缀+采购日期+6位流水号)微信小程序 生成外卖顺序号,生成订单号或流水号简单方法,实现订单号生成唯一的解决方案,如何按日期生成订单号,14位编号=8位日期(+6位流水号),自动生成订单号(固定+日期+数字),销售订单号自动生成。在微信小程序开发中,详解实现随机生成创建订单号

🏆 前端领域优质创作者 1186

数组常用的20个方法

1.join( )用于把数组的所有元素连接并转换成字符串。默认用逗号作为分隔符。如果分隔符是空字符串,则所有元素之间没有任何字符。

WZH15075051915的博客 7217

药物代谢仿真软件:PKSim_(6).案例研究与实践应用

通过本章的案例研究和实践应用,我们展示了如何利用PKSim软件构建药物动力学模型、进行参数估计、仿真预测和结果分析。这些方法不仅有助于优化药物代谢研究过程,还可以在药物研发中提供重要的数据支持。通过模型的构建和验证,我们可以更好地理解药物在体内的动态变化过程,为临床试验和药物治疗提供科学依据。

kkchenjj的博客 655

手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战

摘要: 本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理,通过滑模观测器估算反电动势,结合PLL抑制抖振;2)系统架构,替代编码器信号;3)Simulink建模流程,涵盖Clarke变换、SMO离散化实现、PLL设计等关键步骤;4)参数整定指南和工程实践要点,如启动策略和故障处理。该方法具有成本低、可靠性高的优势,适用于家电、电动车等场景,仿真结果显示角度误差±5°,速度动态跟随良好。文章还提供了调试建议和常见问题解决方案。

MHD0815的博客 139

数组常用的函数

数组常用函数js

m0_74331185的博客 3044

学Simulink——基于 Simulink 的 滑模控制(SMC)

本文详细介绍了基于Simulink的Buck变换器滑模控制(SMC)设计与实现方法。首先阐述了传统PI控制在负载突变时的不足,以及滑模控制具有强鲁棒性和快速响应的优势。通过建立Buck变换器的连续状态方程,推导了含积分项的滑模面和控制律,并采用边界层法抑制抖振。文章分步骤讲解了Simulink模型搭建过程,包括主电路、控制器实现和负载扰动模拟模块。仿真结果表明,在负载1A↔5A阶跃时,SMC控制输出电压波动仅0.08V,恢复时间0.35ms,远优于传统PI控制。同时给出了工程实践中的参数选择建议和数字实现技

amy_mhd的博客 254

JS数组对象的定义及相关属性和方法

数组: JS中的数组对象跟java中的集合本质上是一样的,它的长度是可变的.元素可以是任意object类型. 定义: new Array(); new Array(size); new Array(element0, element1, ..., elementn); var array = [element0,element1,...,elementn];//定义一个二维...

weixin_30242907的博客 253

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

javascript教程(4)——对象基础知识和数组的属性,方法

1.对象基础知识 1.1 对象的概念 什么是对象,很多人其实比较难回答。其实生活中什么都是对象,比如一个人就是一个对象,这个人有年龄,性别,身高等等属性,同时他还有很多的功能或者说方法,比如说走路,跑,跳等等。 在ECMA中把对象定义为:“无序属性的集合,其属性可以包含基本值、对象、或者函数。”       JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... 此外,J...

wydsnza的博客 400

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JavaScript数组自定义属性

我们可以以json键值对的形式自定义属性。 首先定义一个JS数组JSarray。 然后按json键值对的形式进行赋值。 最后在控制台显示结果。 代码如下: var JSarray = new Array(); for(var i = 0;i<5;i++){ JSarray[i] = { arr1:"text"+i, arr2:"text"+i, ...

weixin_30426957的博客 445

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

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

Web前端入门第 60 问:JavaScript 各种数组定义与数组取值方法

JS 的数组花样很多,不像其他强类型语言中的数组限制颇多。除了使用字面量[]定义数组外,还可以使用构造函数Array定义数组,也可以使用数组提供的内置方法定义数组。// 字面量定义数组// 空数组// 包含元素const arr5 = Array(1, 2, 3) // 与 new Array 一样,获取 [1, 2, 3]const arr6 = new Array(5) // [空属性 × 5] 数组长度为 5。

weixin_41072543的博客 60

javascript数组

一、数组的定义 1.方法一 ``` var arr = [1, 2, 3, 4, 5]; var arr2 = ['c', 'g', 'f']; var arr3 = ["hello", "hi"]; ``` 2.方法二:通过js关键词new 定义数组。 ``` var arr = new ...

weixin_30239339的博客 73

面试js数组和object string点滴yan

数组上也是可以挂其他属性的,不过不在计算在length中 data.sort(function(a, b) { return b.total - a.total; }); 这个数组的sort函数改变之后,不需要重新赋值,在原有的指针上修改的。 Object 方法 对象 一种对象深拷贝的方法: var obj = {name:’yan’}; var tem = Object.create(obj) tem的改变不会改变obj,但是obj改变会改变tem. assign方法 这个方法也可以merge也

weixin_42201346的博客 296

js的数组、对象自定义、JSON转换

(一)简单定义和使用1、直接指定键值对对象用一对{}包围。属性名和属性值用":"隔开。每个键值对用","隔开。var 变量 = {名字: 值,名字: 值2、使用案例:允许基本类型和函数类型的属性。"name": "小明","sex": "男",// 用对象名["属性名"] 来获取属性值// 用对象名.函数名(实参列表) 来调用函数(二)构造函数的使用1、构造函数function 类名(参数列表){this.属性名 = 值;

2401_89847635的博客 346

Javascript之旅——第二站:对象和数组

  一觉睡到中午,本来准备起来洗洗继续睡,不过想想没辙,还得继续这个系列,走过变量的第一站,第二站我们再来看看对象和数组。 一:对象   说起对象,我们不自然就想起了面向对象中自封装的一个类,同样JS中也是遵循这个守则,在web编程中几乎天天用到的就是JSON。是的, 这就是一个对象,不过这个对象下面的字段都是字符串和值类型,如下图。 1 var de...

weixin_30725315的博客 66

JS中的内置对象简介与简单的属性方法

JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一数组可以储存多种不同的数据类型(但,同一数组一般只用于存放同种数据类型) 例如var arr1 = [1,"2",true,{"name":"啦啦啦"},[1,2]]; ②通过new关键字声明:var arr2 = new Array(参数); >>>参数可以为: 空:表示声明一...

u011927449的博客 153

JS的使用方式

JS的使用方式 js的使用方式: 行内JS:写在标签中的代码 内部JS写在页面中的JS代码 <scrip>

weixin_43214978的博客 269
上一篇: javascript函数的定义与调用以及参数传递
下一篇: javascript常用对象
csdn_wpno1
博客等级 码龄10年 13粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值