javascript数组的使用总结

别再傻傻用外部中断了!STM32H743定时器编码器模式4倍频测速保姆级配置(附CubeMX+HAL库代码) 本文详细介绍了STM32H743定时器编码器模式的4倍频测速配置方法,通过CubeMX和HAL库实现高效脉冲计数。相比传统外部中断方案,硬件编码器模式显著降低CPU占用率,提升测速精度,适用于电机控制和运动检测等高要求场景。 阅读详情

数组属于什么数据类型

让我们一起复习一下吧:

  • javascript基本数据类型有五种:Number、String、Undefined、boolean、Null
  • 引用类型有:
    引用类型是一种数据结构,将数据和功能组织在一起:
    Object、Array、Date、RegExp、Function

  • 基本包装类型: Boolean、Number、String

  • 单体内置对象:Global、Math


javascript数组和其他不同之处:

js数组可以保存任何数据类型的项在同一个数组里面,比如第一项是数字,第二项是字符串,第三项是对象……


创建数组:

  • 使用Array构造函数:
    传入一个参数时,参数如果是数字,则代表新的数组的长度为该数字,如果其他类型的参数,则代表是包含该数据一项的数组;
    传入多个参数时,参数依次做为数组的项;
 var array1 = new Array(3); //表示array1是一个长度为3的数组
 var array2 = new Array("a","b", "c", "d"); //表示:数组["a","b", "c", "d"];


  • 数组字面量
 var array1 = ["a","b", "c", "d"];
 var array2 = [];//创建了一个空数组
 var array3 = [1,2,3,]//创建了3个或者4个项的数组,不同的浏览器不同;



检测数组:

方法一:instanceof操作符

if (value instanceof Array){
  //...进行某些操作
 }

instanceof 操作符的问题在于,它假设只有一个全局执行环境,如果网页中包含多个框架,那么它存在两个不同以上的全局执行环境,从而存在两个不同版本的Array构造函数。当从一个框架传入一个数组与第二框架中原生创建数组分别具有各自不同的构造函数。

方法二: Array.isArray()方法

为了解决instanceof操作符存在的问题,es5新增了Array.isArray()方法,这个方法最终目的是为了确定这个值是不是数组,不管是哪个全局环境创建的;

if (Array.isArray(value){
  //...
 }



字符串和数组的转换方法:

数组转换成字符串

所有的对象都有toLocaleString(),toString()和valueof()方法。
调用toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。
调用valueof()返回的还是数组,实际上,为了创建这个字符串会调用数组的每一项toString()方法;
调用localeString()方法,也会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串,不同的是,为每一项调用tocaleString()方法;

  var array1 = ['a','b','c'];
    console.log(array1.toString());//"a,b,c"
    console.log(array1.valueOf());// ["a", "b", "c"]
  var array2 = [1,'a','b','c'];
    console.log(array2.valueOf());//[1, "a", "b", "c"]
    console.log(array2.toString());//"1,a,b,c"

join()方法,传入的参数为分隔字符,用来分隔数组的每一项,从而组成数组

var array1 = [1,'a','b','c'];
console.log(array1.join("||"));// "1||a||b||c"


将字符串转换成数组

字符串对象调用split()方法可以生成数组,参数为切割字符串的字符,举一个栗子看看吧:

var string = "i am a pretty girl";
console.log(string.split(" "));//["i", "am", "a", "pretty", "girl"]



数组的潜拷贝和深拷贝

什么是浅拷贝

把一个数组整体直接赋值给另一个变量的时候,这个变量只是得到了数组的引用;这个时候相当于有两个名字和这个数组相对应,通过一个引用改变数组的值,另一个引用也会得到改变;
下面举个例子看看浅拷贝

var array1 = ['a','b', 'c', 'd'];
var array2 = array1;
array1[0] = 'e';
console.log(array2[0]); // e

如何实现深拷贝

和浅拷贝相对,是将原数组中的每一个元素一个一个复制到新的数组当中;

 var array1 = ['a','b', 'c', 'd'];
function arrayCopy(oldArray){
   var newArray = []; 
   for (var i = 0; i < oldArray.length; i++){
   newArray[i] = oldArray[i];
 }
 return newArray; 
}
  var array2 = arrayCopy(array1);
  console.log(array2);
  array1[0] = "e";
  console.log(array2[0]);//["a", "b", "c", "d"]



栈方法、队列方法

这里写图片描述

push()和pop()方法实现栈方法;
shift()和push()方法实现队列方法;



重排序方法:

reverse()反转数组;

var array1 = ['a','b', 'c', 'd'];
console.log(array1.reverse());//["d", "c", "b", "a"]


sort(); 自定义排序规则

当没有参数时,默认按照字符串的比较方法;
sort()接收一个排序函数函数作为规则;
这个排序函数接收两个参数,分别是前一项和后一项;函数有三个,返回值当返回值为正时前一项移到后一项的后面;当为负数时,前一项调整到后一项的前面;返回0时,位置不变;
举个栗子看看:

  var values = [0,1,56,23,34,3];
        values.sort(function compare(value1,value2){
            if (value1 < value2) {
                console.info(values);
                return -1;
            } else if (value1 > value2) {
                console.info(values);
                return 1;
            }else{
                console.info(values);
                return 0;
            }
        });
        console.log(values);//0,1,3,23,34,56

从SPI到JTAG:玩转FT2232H的MPSSE多协议切换指南(附配置代码) 本文详细介绍了如何利用FT2232H芯片的MPSSE技术实现SPI与JTAG协议的无缝切换,提供配置代码和调试技巧。通过解析MPSSE引擎架构和硬件特性,帮助开发者灵活应对多种串行协议需求,提升嵌入式开发效率。特别适合FPGA调试和物联网设备开发场景。 阅读详情

相关推荐

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1088

js中的数组总结

/ 老办法,语法较长 arr [ arr . length - 1 ];// 新特性 arr . at(- 1);实际上,arr.at(i):如果 i >= 0,则与 arr[i] 完全相同。对于 i 为负数的情况,它则从数组的尾部向前数。

Girasol_YRR的博客 477

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果,国防版凭借其卓越的安全性和可靠性,已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求,而麒麟V10国防版在安全防护等级上又达到了更高的级别。本文将主要演示离线部署,因为军工项目基本不会出现联网场景。即使在线,也可以按离线方式部署,且离线部署由于有私有仓库,不会存在镜像获取不到和丢失情况。

jiaworld的博客 730

JavaScript引用类型(一)数组类型常用方法总结

一、检测数组: 对于一个网页或者一个全局作用域而言,使用instanceof操作符就能检测数组,例如: var arr = [1,2,3]; if(arr instanceof Array){ // 对数组执行的操作 } instanceof操作符的问题在于在于,它假定只有一个全局执行环境。如果网页中包含多个框架,实际上就存在两个以上的不同全局执行环境,从而存在两个以上不同版本的Arra...

baiqiangdoudou的博客 1058

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理安装python下载python安装包开始安装安装pycharm社区版下载pycharm开始安装如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装python 使用pycharm学习opencv应该是最简单的了,对新手比较友好,

steveqobs 7708

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

JavaScript 数组知识点总结

JavaScript 数组知识点总结

weixin_44330646的博客 1155

Android T GPS 定位流程

Gps 定位

好记性不如烂笔头 1355

JS数组介绍

什么是数组 数组(Array),顾名思义,用来存储一组相关的值,从而方便进行求和、计算平均数、逐项遍历等操作。 var scoreArr = [96, 97, 76, 87, 87, 90, 91, 100, 78, 56]; 每种高级编程语言中都有数组,它是非常重要的一种数据结构 数组的定义方法 定义一个数组非常的简单,只需要使用方括号[]即可 var arr = ['A', 'B', 'C', 'D']; 定义数组还可以这样: var arr = new Array('A', 'B', 'C',

qq_43256819的博客 232

【异常】Cursor报错We‘re having trouble connecting to the model provider. This might be temporary

在使用Cursor编辑器进行AI交互操作时,界面弹出如下报错提示,导致无法正常调用模型服务,影响使用流程:We’re having trouble connecting to the model provider. This might be temporary - please try again in a moment. 该报错核心含义为Cursor编辑器无法正常连接至背后的AI模型服务提供商(如OpenAI、Anthropic等),属于连接类异常,并非编辑器本身运行故障。经排查,该报错不具备破坏性,仅

奶爸的编程之路,也就一周冷个三天 1691

2023华为OD机试真题B卷 Python 实现【最长的元音子串长度】

定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成的子序列称为该字符串的子串

MISAYAONE的博客 902

ToLocalString 方法

toLocalString方法是用于返回格式化对象后的字符串,该字符串格式因不同语言而不同。可以通过传参决定返回的语言与具体的表现,某些场景下相当有用,语法如下: object.toLocaleString([locales [, options]]); locales参数用于指定格式化对象时使用的语言环境,默认为当前环境的语言,可以不传。该参数具体可选的值可以参考这里,一般而言使用e...

qq_42453950的博客 6313

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

【一篇搞定JS数组】JavaScript数组使用详解

与其他编程语言中的数组不同的是:js数组是js中的一种特殊的(内置)对象,索引更像是属性名,只是刚好是整数。在js中,数组是无类型限制的(即数组的元素可以是任意类型,包括自定义对象)。ja数组是基于零且使用32位数值索引的(从最小0到最大2^32-2)js数组是动态的js数组可以是稀疏的(即元素不一定有连续的索引,中间可能有缝隙)对于稀疏数组,length是大于所有元素的最高索引。数组从Array.prototype继承属性,这个原型定义了很多数组操作方法。(并且很多都是泛型的)ES6新增。

undefined 7045

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【JavaScript—数组】详解js数组一篇文章吃透js-数组

这篇文章将教会你js中的数组,包括了数组的概念,如何进行筛选数组元素,如何添加新数组 以及用两种不同的方式进行数组的筛选,一文即可搞懂js-数组

zhaochen1127的博客 2205

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JavaScript——JS数组

JavaScript——JS数组

2303_79975149的博客 1899

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JavaScript学习手册五:JS数组

第1关:数组的创建、读写和长度 第1关参考代码: 第2关:数组元素的增减 第2关参考代码: 第3关:数组的遍历和多维数组 第3关参考代码: 第4关:数组的常用方法 第4关参考代码: 第5关:数组的应用——内排序 第5关参考代码:

m0_65391975的博客 7485

js 取得数组下标_JavaScript 数组 详解

前言在开发中,数组的使用非常多,会涉及很多的 api 的使用,但是除了几个最常用的 api 之外,其他的 api 用完之后经常就会忘掉了,再用的时候还要查一下。所以就希望系统的总结梳理一下这块内容,写下这篇文章,如果喜欢的话,可以 点赞/收藏,支持一下,希望看完会对大家有帮助。本文篇幅较长,建议点赞保存再看,也便于日后翻阅。创建数组语法[element1, element2, element3,...

weixin_39585675的博客 8102

js 数组 改变长度_【JavaScript数组【Array】

数组对象一种特殊的对象JS其实没有真正的数组,只是用对象模拟数组JS的数组不是典型数组典型的数组元素的数据类型相同使用连续的内存存储通过数字下标获取元素JS的数组不是这样元素的数据类型可以不同内存不一定是连续的(对象是随机存储的)不能通过数字下标,而是通过字符串下标这意味着数组可以有任何key比如let arr=[1,2,3]arr['xxx']=1创建一个数组新建let 转化let 伪数组let...

weixin_39607240的博客 1358

详解JavaScript的数组,JS数组方法大全

什么是数组 数组是值得有序集合,每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。 js的数组是无类型的,数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组。 数组元素的索引不一定要连续,元素之间可以有空隙,叫做稀疏数组 。 每个数组都具有一个length属性。 针对非稀疏数组,length属性就是数组元素的个数,针对稀疏数组,元素的length属性比所...

wfly blog 880

【JS】js数组分组,javascript实现数组的按属性分组

项目代码中有很多时候需要按一定的条件实现按属性分组。

余浩的博客 1万+

JavaScript-JS数组方法有哪些

join() reveres() sort() concat() slice() splice() push()和pop() unshit()和shit() toString和toLocaleString() forEach() map() filter() every和some() reduce()和reduceRight()

hnyanzijun1的博客 1092

JavaScript js JS 数组方法介绍总结及其使用

JavaScript JS 数组 最常用的数据结构 方法 声明和初始化数组,给数组赋值,以及添加和删除数组元素,二维数组,ES6 新增数组常用方法,示例,练习。

ccq的博客 1456

js二维数组_Javascript数组

数组的概念:引用类型的对象。本质:内存中存储多个数据的空间,再取个名字。数据结构:数据结构不同,擅长的操作不同。数组特点:便于数据的查找与维护。数组的创建:方法1:var 数组名=【元素1,元素2,元素3......元素n】;注意:可以创建空数组,建议创建同时赋值!方式2:var 数组名=new Array();数组的使用:下标:每个元素都有一个对于的房间号,默认从0开始,逐一递增。元素:其实就是...

weixin_39720807的博客 2245

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

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

VT_馒头的博客 1737

js数组分组,javascript实现数组的按属性分组

根据具体的需求和项目环境,选择适合的方法可以提高代码的可读性和性能。对于简单的分组需求,可以选择forEach()方法或lodash库的groupBy()方法;对于复杂的分组需求,可以选择reduce()方法、Map对象或ES6的Map和箭头函数。在JavaScript中,有多种方法可以对数组按属性进行分组。以上是6种常见的方法,它们都能够按照指定属性对数组进行分组。

一步一个脚印,踏实努力,向着目标前进 6220
上一篇: 用鼠标事件实现拖拽
下一篇: javascript实现堆栈和简单的应用
景洪在编程
博客等级 码龄9年 13粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值