【复习】javascript 数组,string对象,循环相关方法

避开这5个坑!ADNI数据库下载实操经验分享(含断点续传方案) 本文分享了ADNI数据库下载的5个常见陷阱及解决方案,包括高级搜索策略优化、断点续传技巧和数据完整性验证。特别针对大文件下载中断问题,提供了wget断点续传和分卷下载的实操方法,帮助研究者高效获取神经影像数据,避免重复下载和时间浪费。 阅读详情

1.数组

1.1.数组的创建方式

字面量创建

//底层实现: new Array();
var arr = [];

 数组构造函数创建

var arr1 = new Array();

 

1.2.js内置数组对象的方法

  •  toString()    将数组中的每一项拿出来,使用逗号隔开,变成一个字符串
  •  valueOf()    返回数组本身
  •  join()           使用一个字符将数组分割成一个字符串;join方法不传入参数,默认使用逗号分割

  • concat()       连接数组之后会返回一个新数组,例如[].concat(arr,arr1)

  • push()         在数组最后添加项;返回新数组的长度   可以添加多项数据,例如添加多项数据:arr.push(100,200,300,'哈哈哈','嘻嘻嘻')

  • pop()          删除数组最后一项;返回被删除的最后一项的值   只能删除最后一项

  • shift()          删除数组第一项; 返回被删除这项的值  每次只能删除一个

  • unshift()      在数组最前面添加数据项;返回数组的长度 ;’可以添加多项;例如添加多项:arr.unshift('熊大','熊二','光头强')

  • splice()       删除数组的中指定项;有三个参数  删除数组中的数据项,原数组会被改变;不传入参数,就是将数组中的所有数据项全删除;传入一个值:表示的时候要删除的数据项的索引开始位置,一直到结束;两个参数的时候:第一个表示要删除的数据项的索引开始的位置,第二个值表示:要删除的个数;三个参数的时候:第1个表示要删除的数据项的索引开始位置,第二个值表示要删除的个数,后面的参数是替换删除掉是数据的位置;返回的是被删除的数据组成的数组

  • slice()       复制,用原来的数组中去复制一份数据出来  原数组中不会受影响;没有参数,相当于将原数组完整的复制了一份;一个参数,表示复制数组中的数据项的索引开始的位置,一直到数组结束位置;两个参数的时候,第一个表示复制数据项的索引开始的位置,第二个表示结束的索引的位置(但是这个位置上的值取不到);返回赋值的数组

  • reverse()   数组翻转,会改变原数组,返回翻转后的数组

  • indexOf     获取数组元素的索引;一个参数时,表示查找该字符串的索引;两个参数时,,第二个参数表示查找的索引的开始位置;查找不到返回-1

  • includes()   检查数组中是否包含某一个数据 Array.prototype.incloudes()  是es7(es2016)的一个方法

 

1.3.string对象的方法

  • charAt()        根据索引获取对应位置的字符
  • concat()        拼接字符串;是对象的一个方法,要使用的时候一定要使用对象名.方法名();例如:str.concat(str1)

  • split()            用来将字符串分割成一个数组的;返回的是一个数组

  • slice()           截取字符串中的某一部分;不会影响原来的字符串,返回一个新的字符串;当参数是一个值的时候,表示截取索引的开始位置;两个参数时第一个表示截取索引开始的位置,第二个表示索引结束的位置(这个位置上的字符取不到);当传入一个负数的参数,从字符串的后面第一个开始算,第一个的索引就是-1.  一直截取到最后

  • substring()   截取字符串;不能使用负数,使用负数是无效

  • substr()        截取字符串;如果是一个参数表示截取字符串索引的开始位置;如果是两个参数,第一个表示截取字符串索引开始的位置,第二个参数表示截取的个数

  • replace()       字符串替换;第一个采纳数表示旧的字符串;第二个参数表示新的字符串,多个字符串只会替换一次

 

1.4.循环 

forEach()

           arr.forEach(function(item,index) {
                 //item:表示循环的数组中的每一项
                 //index: 表示的时候每一项的索引
                 console.log(item+'--------------'+index);
           })

 filter() 过滤器

        // ES6中提供的一个叫过滤器的函数   filter()   过滤   筛选:根据一定的条件来做筛选
        // 使用: filter(函数)    传入的函数中定义了一些筛选的条件
        // filter这个方法会返回一个新的数组
        var arr = [2000,3000,1500,1800,6000,5800];

        var res = arr.filter(function(item) {
            //item表示的就是arr这个数组中的每一项数据
            return item>2000;  //筛选条件, 返回arr数组中数据项值大于2000的数据项
        })

        console.log(res);

 map()    映射

         // ES6中的映射map方法
        // 从后台过来一条数据:
        var arr = ['家用电器','手机','保健食品','护肤产品','空调']

        //  <li><a href=#>家用电器</a></li>

        //map方法也会返回一个新的数组    map方法底层实际上已经做了数组的循环遍历了

        var res = arr.map(function(item) {
            return '<li><a href=#>'+item+'</a></li>'
        })

        console.log(res);

 some()  用于检测数组中的元素是否满足指定条件;如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测;如果没有满足条件的元素,则返回false;some() 不会对空数组进行检测

        var arr = [100, 200, 300, 400];
		// some能够查看是否找到,但是不能够取出这个数据
		var newArr = [];

		arr.some(function (val, index) {
			console.log( index );
			// 查找200,并且取出200;如果找到200就存到数组中
			if ( val >= 200 ) {
				// 满足这个条件的val就是我们要找的值,吧这个值拿出来装到newArr
				newArr.push(val);
				return true;
			}
			
		});

  every()  用于检测数组所有元素是否都符合指定条件;如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测;如果所有元素都满足条件,则返回 true

var ages = [32, 33, 16, 40];

function checkAdult(age) {
    return age >= 18;
}

 1.5.其他

 1.5.1扩展运算符(展开运算符) 

  输出数据 

// 输出数据
// 展开运算符其实是将里面的元素, 展开成逗号分隔的语法形式
// 展开运算符可以说一个语法糖, 本身并没有真正的作用
let arr = [1,2,3];
console.log(...arr);// 输出 1,2,3

 借助concat()方法来复制数组 

// // 数组是一个引用型的对象, 经常会有数据污染的困扰,
// // 如果通过展开运算符生成一个新数组, 两个数组之间就是互相独立的了

// 复制数组(原生)
let arr2  = arr.concat([]);
console.log(...arr2);//1 2 3

 借助展开运算符合并数组

// 合并数组(es6)
let arr4 = [...arr,...arr2];
console.log(arr4);//[ 1, 2, 3, 1, 2, 3 ]

 

  1.5.2.数组去重

  借助set中元素不能重复的特点来帮助数组去重

// 数组去重
//使用set对象去重  set元素不能重复
let arrReply = [1,2,3,3,4,5,5];
let arr5 = [...new Set(arrReply)]
console.log(arr5);//[ 1, 2, 3, 4, 5 ]

// 数组生成set
let set = new Set(arr5);
console.log(set);

// set转化为数组
let arr6 = [...set];
console.log(arr6);

  

   1.5.3. 合并对象

  借助Object.assign()浅拷贝方法处理单层对象的合并

// 合并对象
// Object.assign 可以进行对象的合并
// 这个函数只要传入对象作为参数即可
let obj3 = {name:'tom'};
let obj4 = {age:17};
// 将后面的参数合并到第一个对象中,修改第一个对象
Object.assign(obj3,obj4);
console.log(obj3);

  借助Object.assign()浅拷贝方法还可以处理单层对象的赋值

let obj7 = Object.assign({},obj6);
console.log(obj7);

  

 1.5.4.解构

var student = {
    name: 'tom',
    age: 12,
    school: {
        name: 'xxx',
        address: 'yyy'
    }
}

// 解构对象内部对象的属性
// 解构语法方便这种从一个对象中提取属性, 赋值给变量的操作, 只需要一个花括号即可
let {name} = student.school;
console.log(name);

let {age, address} = student;
console.log(age,address);

 

 1.5.5.遍历对象

   for in 循环 

let stu = {a:1, b:2, c:3};
// 4.1. for in 循环
for(let key in stu){
    console.log(stu[key]);
}

 获取key值的集合 

// 获取到所有key
let keyArr = Object.keys(stu);
console.log(keyArr);

keyArr.forEach(key=>{
    console.log(stu[key]);
});

 综合示例

map很适合变更已有数据结构

let students = [
    { name: "小明", age: 18 },
    { name: "小红", age: 18 },
    { name: "小天", age: 18 },
]

// 1. 优先考虑, 不要影响原数组, 可以使用 map 映射
let newStus = students.map((item)=>{
    // 不要影响遍历出来的对象, 这个时候可以使用展开运算符进行复制
    return{
        ...item,
        school:'xxxx'
    }
});

console.log(students);
console.log(newStus);

 

 

 

 

Unity之Hololens2开发MRTK Profile详解 配置 MRTK 的主要方式之一是使用基础包中的配置文件。场景中的主要对象具有活动配置文件 - 一个 ScriptableObject。顶级 MRTK 配置配置文件包含主核心系统的每个核心的子配置文件数据,每个主核心系统都旨在配置其相应子系统的行为。此外,这些子配置文件也是 ScriptableObjects,因此可以包含对低它们一级的其他配置文件对象的引用。实质上,有一个包含已连接配置文件的完整树,这些配置文件构成了如何初始化 MRTK 子系统和功能的配置信息。 阅读详情

相关推荐

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2930

JS易混淆的方法整理

js的字符串方法如substr、substring,数组方法如slice、splice等名字相近,用法稍有不同,让开发者在开发过程中总是记不起其用法,需要查资料。现整理一下,希望有助大家记忆。 String对象 slice stringObject.slice(start, end) var a = 'Hello world!'; var b = a.slice(2); var c = a...

weixin_34122548的博客 270

STM32串口DMA双缓冲机制实战:提升数据传输效率的终极方案

本文深入解析了STM32串口DMA双缓冲机制的核心原理与实战配置。通过对比传统中断方式,阐述了双缓冲如何实现数据接收与处理的“无缝接力”,从而在工业传感器数据采集等高负载场景下,将CPU占用率降至极低水平并彻底避免数据丢失。文章提供了基于标准外设库的详细配置步骤、中断处理逻辑及性能实测数据,是提升嵌入式系统串口通信效率和可靠性的终极方案。

weixin_29192365的博客 80

JavaScript遍历字符串

遍历字符串 length属性 该length属性具有字符串长度,它仅返回字符串中的字符数: let str = "hello123"; alert(str.length); // 8 // the last character alert(str[str.length - 1]); // 3 请注意,这str.length是数字属性,而不是函数。无需在其后添加括号。 使用字符串索引号遍历字符串 for循环 要遍历字符串的所有字符,我们可以使用一个普通的for

allway2的博客 3万+

别再找在线API了!用C#调用微信电脑版自带的OCR,本地识别又快又准

本文详细介绍了如何利用C#调用微信电脑版内置的OCR引擎实现本地文字识别,解决传统云端API的隐私和网络依赖问题。微信OCR具备高精度中文识别、完全离线运行和零成本接入三大优势,特别适合企业文档电子化处理。通过实战代码演示了核心交互逻辑、批量处理流水线和表格数据提取等高级应用场景。

weixin_29295541的博客 589

Webpack打包到宝塔上线:前端小白也能搞定的部署保姆教程

本文为前端开发者提供了一份详尽的Webpack项目部署指南。通过宝塔面板的可视化操作,手把手教你如何将Vue3等项目从本地构建、打包,到上传服务器、配置Nginx,最终完成上线部署的全过程,有效解决了新手在项目上线环节的常见难题。

jjj34的博客 225

深入理解JavaScript的循环遍历

前言 对一个循环分享的这么详细,相信看完你会有所收获。 正文从这开始~ 在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循环,是: for-of 下面我们就来看看这 4 种 for 循环。 一、简单 for 循环 下面先来看看大家最常见的一种写法: 当数组长度在循环过程中不会改变时,我们应将数组长度用变量存储起来,这样会获得更好的效率,下面是改进的写法: 二

星期一的博客 817

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1848

JS 数组循环常用的方法

1、普通for循环 ---循环一定的次数 2、for~of ---循环可迭代对象 3、.forEach(function(currentValue,index,arr){}) 4、for~in ---循环遍历对象的属性 5、.every(function(currentValue,index,arr){}) 6、.map(function(currentValue,index,arr){}) 7、.some(function(currentValue,index,arr){})

weixin_43905116的博客 2055

LeRobot 入门教程(四)SO-101机械臂组装教程

《SO-101机器人组装与配置指南》详细介绍了旗舰机器人SO-101的完整搭建流程。从获取3D打印零件、安装LeRobot软件和FeetechSDK,到分步组装6个关节的机械臂结构(含夹爪/手柄选项),指南提供了清晰的螺丝规格和安装位置说明。重点包括:电机ID/波特率设置方法、USB端口识别技巧、领导者/跟随者臂的校准流程,以及故障排查建议。完成组装后,用户可通过配套Python脚本校准机器人,为后续的自主学习任务做好准备。文档附有视频演示和技术支持通道,确保用户顺利完成机器人部署。

2506_90492529的博客 2582

【动态导通电阻】GaN功率器件中动态导通电阻退化的机制、表征及建模方法

研究目的:鉴于动态RON退化对GaN功率器件性能的显著影响,本文旨在全面综述和讨论GaN功率器件中动态RON退化的机制、表征方法、建模技术以及解决方案,以期为GaN功率器件的设计、优化和应用提供理论指导和实践参考。内容概述:文章首先分析了缓冲层陷阱和栅极不稳定导致动态RON退化的物理机制,并通过物理基础的TCAD模拟与高压背栅测量结果进行对比,揭示缓冲层陷阱的充电/放电过程如何影响动态RON。接着,讨论了不同GaN器件技术中栅极不稳定引起的动态RON增加以及栅极过驱动的作用。

荷塘阅色 1167

(js)模板字符串中使用循环遍历数据:

(js)模板字符串中使用循环遍历数据:

nyf_unknow的博客 2848

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

【76】JS(7)——对象③内置对象

⚪基本介绍⚪Math对象⚪Array对象⚪String对象

倏存的博客 1043

STM32F407中文手册

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JavaScript从入门到精通复习资料大全(进阶篇)

JavaScript从入门到精通复习一、JavaScript的内部对象1、Object对象1).创建Object对象语法:2).Object对象的属性(1)prototype属性(2)constructor属性3).Object对象的方法(1)toLocaleString方法(2)toString方法(3)valueOf方法2、String对象3、Date对象4、event对象5、filesystemobject对象6、 Drive对象7、 File对象8、 Folder对象 一、JavaScript的内部

张璟冰的博客 1303

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

js复习第一天

1.了解javaScript 1.1javaScript是什么: 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。 1.2作用: 网页特效 (监听用户的一些行为让网页作出对应的反馈) 表单验证 (针对表单数据的合法性进行判断) 数据交互 (获取后台的数据, 渲染到前端) 服务端编程 (node.js) 1.3组成: ECMAScript: 规定了js基础语法核心知识。 比如:...

weixin_45650436的博客 894

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaScript学习第四天——数组排序、冒泡排序、比较排序、对象

复习 ​ 作用域: ​ 全局作用域: ​ 全局变量和全局函数 ​ 在函数外部声明的变量是全局变量,可以使用var也可以不使用var,但建议使用var ​ 在内部申明的函数叫做全局函数 ​ 局部作用域: ​ 局部变量和局部函数 ​ 在函数内部申明的变量是局部变量 函数递归: ​ 在一些特殊的常量中,可以通过函数自己调用自己本身来减少循环量 注意事项: ​ 1.必须要有终止递归的条件(必须是带参的函数) ​ 递归的次数尽量控制在10之内 数组 ​ 数组的声明: ​ va

h_jQuery的博客 264

数组高阶方法的复习与实现

数组高阶方法的复习与实现 forEach方法 forEach方法的使用 forEach方法:作用循环遍历数组,接收两个参数,没有返回值。 第一个是一个回调函数;里面可以接收三个参数;第一个参数是数组里的元素,第二个是元素的索引,第三个是数组本身 第二个参数是第一个函数this指向,不填默认指向window let arr = [1,2,3]; let obj = {a:1}; arr.forEach(function(item,index,arr){ console.log(item,inde

yanggongyun的博客 297

JS “对象、内置对象” 笔记

JS学习笔记

MartinYP的博客 250

JavaScript数组方法复习

JavaScript数据类型 1.基本数据类型 nubmber,string,boolean,null,undefined,symbol 2.引用数据类型 也称复杂类型 object,function 3.检测基本数据类型 typeof 变量名 4.特殊 typeof null 返回 object typeof 函数名 返回 function var a = 1 console.log(a*null) //返回0 console.log(a*NaN) //返回NaN===not

☆夏の独憶☆ 138

JavaScript基础学习、复习笔记

本文包含JavaScript基础大致内容,参考于pink老师所讲解视频通过自己理解整理,所以这是一篇用于小白新手入门,或者复习使用笔记,JavaScript高级知识以后也会更新。 如有做的不好地方,敬请谅解,欢迎指出,持续更新改正。......

weixin_60896381的博客 2139

JavaScript基础复习下(51st)

数组,函数,作用域,对象,预解析,内置对象,简单数据类型,复杂数据类型

山雀的博客 1896

JS内置对象方法——String

    最近,感觉JS有些方法忘记了,这几天会抽空复习的,先从数组方法开始,然后是字符串方法,然后Math方法,在Data方法。   我尽可能的全面,但有些真的忘了,甚至忘得连一点印象也没了。   String方法:       ES6:           1.字符的 Unicode 表示法         2.codePointAt()JavaScript 内部,字...

241

JavaScript ES6 Array.from方法总结

本篇文章参考以下博文 ES6,Array.from()函数的用法 JavaScript from() 方法 文章目录                   橘色 蓝色 红色 绿色

不见浅诗的博客 635

JS基础复习

JS基础复习

wh33foreverwith的博客 238
上一篇: 【复习】javascript 函数
下一篇: vscode 黑屏和终端不能输入命令的问题
谭CV
博客等级 码龄9年 73粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值