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

实战分享:如何用本地替换和插桩调试搞定Kasada最新版x-kpsdk-cd环境检测 本文深入解析Kasada最新版x-kpsdk-cd环境检测机制,提供动态请求拦截、本地替换和函数插桩等实战调试策略。通过Proxy保护破解、关键函数断点调试和环境检测对抗方案,帮助逆向工程师有效应对从280位扩展到294位的加密数组挑战,实现高效补环境调试。 阅读详情

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);

 

 

 

 

ROS下UR+Realsense相机进行手眼标定 手眼标定主要是用来确定相机坐标系和机械臂坐标系之间的转换关系,从而实现后续的抓取等任务。 阅读详情

相关推荐

DESeq2实战:如何用LRT检验分析基因表达随时间变化的模式(附完整代码)

本文详细介绍了如何使用DESeq2中的LRT检验分析基因表达随时间变化的模式,包括实验设计、数据预处理、模型构建、结果提取与可视化等完整流程。通过实战案例和完整代码,帮助生物信息学研究者掌握时间序列RNA-seq分析的核心技术,特别适合需要快速上手的实践者。

weixin_42620255的博客 469

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

车载机器人终极解决方案:从功能叠加到生态融合的颠覆性变革

本文提出一种融合智能汽车与家居技术的车载机器人架构。其创新点包括:1)基于多模态传感器的拟人化硬件设计,实现声源定位误差<5°、体温检测精度±0.3℃;2)跨模态情感计算引擎,综合面部表情、心率等数据构建三维情绪模型;3)协议自适应中间件,支持小米、华为等多品牌智能家居设备即插即用;4)环境自适应舵机控制,-30℃环境下扭矩保持率达92.5%。测试数据显示,该方案使交互步骤减少60%,用户满意度提升58%,日均使用时长增加2.3倍,为"人-车-家"生态融合提供了可行技术路径。

qq_42671193的博客 1130

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万+

HAL库STM32CubeMX+DHT11温湿度传感器模块化驱动与OLED显示实战

本文详细介绍了基于HAL库和STM32CubeMX开发DHT11温湿度传感器模块化驱动的实战过程。通过精确的时序控制和模块化封装,实现了传感器数据采集,并结合OLED显示模块实时展示温湿度信息,为嵌入式开发者提供了完整的解决方案。

h6j7k8l9p0的博客 1135

手把手教你用CMake和MinGW64编译libuvc:静态链接与动态链接的选择

本文详细指导如何在Windows平台上使用CMake和MinGW64编译libuvc库,并深入探讨静态链接与动态链接的选择策略。通过对比两种链接方式在部署复杂度、内存占用和版本管理等方面的差异,帮助开发者根据项目需求做出最优决策,实现高效的USB摄像头开发。

weixin_29171087的博客 255

深入理解JavaScript的循环遍历

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

星期一的博客 817

YooAsset 2.2.12四层加密架构:跨平台资源安全实战指南

AssetBundle加密是Unity热更新安全的核心环节,其本质是通过算法、密钥管理与生命周期协同实现资源全链路防护。传统方案常陷于‘打包后加密’的误区,导致内存开销大、跨平台兼容差、逆向防护弱。YooAsset 2.2.12提出打包层、传输层、加载层、运行层四层防护架构,将加密前置到资源序列化前,并依托BundleHeader实现动态算法协商与密钥分发,显著提升iOS/Android/WebGL三端一致性。该方案兼顾AES-128等通用算法与SM4等国密支持,同时通过IMemoryDecryptor实现

weixin_32428571的博客 416

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

Windows服务器环境下 OpenCode Skill 下载与运行全流程实战指南(小白版)

Windows服务器环境下 OpenCode Skill 下载与运行全流程实战指南(小白版),OpenCode技能安装与使用指南,分为四个步骤:1)准备Windows服务器环境并确认OpenCode可用;2)通过Git或直接下载方式获取Skill;3)配置技能路径至.opencode/config.json;4)运行测试技能。关键点包括路径配置必须使用双反斜杠、确保Python环境正确安装、管理员权限运行等。文中提供了文本总结技能的完整案例,从创建skill.yaml和main.py到注册运行的全流程,并针

专注于编程、AI、人工智能等多个领域内容研究和分析 1083

Python爬虫实战:基于Scrapy和Playwright的深交所数据采集

本文将详细介绍如何使用Python最新技术栈(Scrapy框架结合Playwright浏览器自动化)爬取深圳证券交易所(www.szse.cn)的公开数据。文章包含完整项目搭建、反爬策略应对、数据解析存储等全流程实现,并附详细代码示例和性能优化建议。python复制下载# 上市公司基本信息# 财务数据revenue = scrapy.Field() # 营业收入net_profit = scrapy.Field() # 净利润eps = scrapy.Field() # 每股收益。

2201_76125261的博客 952

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

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

nyf_unknow的博客 2848

C# 上位机 YOLO 实战:从数据采集到目标识别的全流程拆解

本文以工业螺栓缺陷检测为例,完整拆解了C#上位机+YOLO从数据采集到目标识别的全流程。数据采集:保证图像质量,线程安全采集,必要时归档数据;预处理:适配YOLO模型输入格式,复用对象减少内存开销;推理解析:正确解析张量结果,过滤低置信度目标;落地环节:可视化展示结果,实现工业交互和日志记录。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1454

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

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

倏存的博客 1043

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

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

js复习第一天

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

weixin_45650436的博客 894

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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、付费专栏及课程。

余额充值