网站首页 > 技术文章 正文
欢迎来到我的JS从入门到放弃专题系列文章,更多精彩内容持续更新中,欢迎关注 :)
在整个前端开发的体系中,JS可以说是占有绝大部分,从今天开始,我将分享一JS的核心语法以及在真实项目中的运用!
写在前面
任何本门编程语言都会有自己的一套语法,而学习语法的过程是最枯燥的,那么接下来我将换种方式来分享原来语法这样学起来还是很有意思的!
本章目标
- 数组的创建和基础方法
- 数组的高级用法
数组的创建和基础方法
一句话来概括数组:它是用来装载任意类型数据的集合。再俗点讲就是,JS中的什么类型的数据都可以往数组里面添加。
一、数组的创建
数组的创建方法有两种:
1、var arr = new Array(); 2、var arr = [];
一般来说,更推荐大家使用第二种方式来创建数组
二、数组的基础方法。
1、添加 push,删除pop
相信学习JS基础的都知道,一般来说,我们都会教大家这样去学习它的API,像这样的
但是这样好像太没意思啦,太无聊啦,我现在是学会了,对于初学者而言,说不定一顿午饭的时间就给忘了。
那咋办????
我们换个思路,我们试着把数组的操作通过可视化的界面展示出来, 然后通过对数组的添加的删除去映射到dom上去。
注:要示例完全没有考虑DOM性能的问题,完全是为了演示数组的操作过程是怎么样的。
先来看效果
这里我默认数组中有一个元素,然后我通过对数组的添加(push)和删除(pop)操作实现对元素的添加和删除。
对数组的添加和删除后,重新调用render方法去渲染。同理,我们可以通过相同的方法去试一下unshift和shift方法。
2、删除数组中的某一项splice
它其实有三种用法,先来看删除,arr.splice(index,num);
index表示索引,即我们要开始删除的位置,num表示是数量,即我们要删除多少个元素。我这样说又太无聊了。接下来我们来看下示例:
我们通过调用数组的splice方法时,主要是找到我们要删除的索引,这个索引就是我们当前点击的元素的索引。
因为这里面的DOM是我们动态创建的,所以我们不能直接在每一个小方块上加点击事件,而是要加在它们的父级box上。我们只需要绑定一次点击事件即可,这里面的基础dom操作就不再展开了。
我们在render方法中获取到我们的所有小方块元素
我们先通过e.target找到我们的点击dom元素,然后再和我们获取到的小方块列表的每一项进行对比,如果相等,我们就可以找到对应的索引。我们在实际项目中这种做法也是经常会用到。
2、在数组中插入或者替换一个元素,splice参数我们可以传第三个参数
arr.splice(index,num,item)
第三个参数的作用就是我们需要将它插入到index的位置。如果num为0,则我们可以看成是删除0个,插入一个,即插件操作,如果num!=0,则先删除,然后插入,这时候效果就是替换了。
数组的高级用法
一、过滤filter
比如,现在有一批分数卡片,0-100分,我们需要找出及格的分数卡片有哪些?
filter方法和forEach方法一样,需要传入一个回调函数,不同的是,filter的回调里面会循环每一项,如果返回true,则满足条件,返回false则不满足,满足条件的项,将会返回到整个filter方法中。所以filter它会返回一个新的数组,这个数组就是我们通过过滤后的新数组了。
二、映射map
这种操作在和filter类似,不同于filter的是,它返回的数组长度将和原数组一致,我们可以对原数组进行改造,形成映射关系,比如,还是上面的示例,我们将他们的分数都加10分,看效果
看懂了filter,这个map也不难理解了,相信写过react项目的童鞋一定对这个map不陌生吧。
三、some
它会返回一个bool值,如果数组中只要有一项满足条件,那么就返回true,否则返回false。比如,在提交表单的时候,我们需要至少选择一个爱好才能提交。
四、every
从字面上理解的意思是每一个,它和some就是相反的,一般来说,这种一般多用在全选的功能上。
可以看到,我们只有把四个复选框都选中了,全选按钮才被选中,否则不选中。
总结:
介绍了JS中的数组对象和基本用法和一些高级函数用法。
这里是【畅哥聊技术】JS从入门到不放弃相关技术文章,更多精彩内容持续更新中,敬请期待。
未完待续。。。
猜你喜欢
- 2024-09-08 「JavaScript 从入门到精通」10.数组
- 2024-09-08 JS——数组的方法 & 高阶函数
- 2024-09-08 Javascript中的内置对象—数组(javascript内置对象应用的)
- 2024-09-08 js数组方法笔记(js的数组)
- 2024-09-08 JavaScript 数组元素的一些操作(javascript中数组)
- 2024-09-08 Javascript数组应用及场景——创建数组的N种方式详解
- 2024-09-08 详解JS数组API方法重构(js 数组 api)
- 2024-09-08 手把手教你Javascript (6)-数组(javascript10分钟速成)
- 2024-09-08 JS核心基础数组的操作概述(js数组原理)
- 2024-09-08 JavaScript操作数组的方式都有哪些
- 1517℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 594℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 521℃MySQL service启动脚本浅析(r12笔记第59天)
- 489℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 456℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
-
- PS所有滤镜的说明(六)(ps滤镜详解)
- 5款小白也能用的在线图片编辑器!电商效率飙升就靠它!
- Java变量(java变量有什么作用)
- Java面试常见问题:Java注解(java中的面试题)
- Java编程入门第一课:HelloWorld(java编程从入门到实践)
- Java基础教程:Java继承概述(java里继承的概述)
- java基础之——访问修饰符(private/default/protected/public)
- 如何规划一个合理的JAVA项目工程结构
- 将机器指令翻译成 JavaScript -- 终极目标
- Web 服务器基准测试:Go vs. Node.js vs. Nim vs. Bun
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)