【JavaScript】JS的Array的用法总结
目录
Array
的长度相关问题indexOf
取元素下标slice
操作push
和pop
操作unshift
和shift
操作sort
操作reverse
操作spilce
操作concat
函数join
函数- 多维数组
Array的长度相关问题
可以直接获取Array的长度属性:
var arr = [1,2,3];
var len = arr.length; // 直接计算得到3
很有意思的是,Array是一个动态变化的数据结构,一般来说只是读取类的属性值,但是在JS中修改Array
的length
的值,变化时直接反应在原数据上的。即:扩大时新的值为undefined
。缩小时,原来的数据被放弃。基于这个,可以引申到:如果直接通过下标访问到越界数据,并不会报错,而是会扩大数组范围,没有填充数据的位置数据是undefined
。
var arr = [1,2,3,'A','B'];
arr.length; // 5
arr.length = 4; // 'B'这个数据就没了
arr[5] = 4; // 变为[1, 2, 3, "A", undefined × 1, 4]
只有越界赋值时才会扩大数组,并用undefined
填充,仅仅是越界访问只会得到undefined
,但不会扩大数组。因为只有写操作时才会修改数组。
indexOf
这个直接就是获取指定元素的下标值,注意对比和字符串的indexOf
的使用对比即可。
slice操作:类比到字符串的substring
操作
截取Array
的部分元素,返回新的数组.
var arr = [1,2,3,4,5];
arr.slice(1,3); // 从下标1开始到下标2结束,不含下标3
arr.slice(2); // 从下标2开始到结束
arr.slice(); // 不给参数就是从头到尾
有必要强调一下下标的范围问题:一般来说老外的调性是左闭右开–[a,b)[a,b)[a,b),就是左边的下标包含,右边的下标不包含,基于什么逻辑来这么设定,并不是很清楚。
push和pop操作
push
: 向末尾添加一个或多个元素pop
: 删除末尾的一个元素
我们会有一种栈的数据结构的感觉。
var arr = [1,2,3];
arr.push(4,5); // [1, 2, 3, 4, 5]
arr.pop(); // 弹出5
可以这么类比:将Array
的尾部当做栈首理解,那么push
和pop
操作就是成对的对栈的操作。只是Array
没有top
操作。如果需要还是通过arr[arr.length - 1]
来获取的。
sort
排序操作
默认是递增排序:arr.sort()
即可,会直接修改数组的值,这个和C++的sort函数很像。
reverse
:反转操作
直接修改原数组,这个通过名称就可以知道要干什么。需要注意的是这个也是函数,需要以函数的形式调用。
splice
函数:万能方法
这个函数其实结合了两个操作:
- 从指定的下标处开始删除若干元素
- 从该指定下标处添加若干元素
var arr = [1,2,3,4];
arr.splice(1,2); // 只删除不添加:从下标1开始三处2个元素,arr变为[1,4]
arr.splice(1,0,'A','B'); // 只添加不删除:从下标1处开始填充'A','B',即'A'会在下标1处,B在下标2处, arr变为[1, "A", "B", 4]
arr.splice(1,2,'Hello','World');// 先从下标1处开始删除2个元素变为[1,4],再从下标1处开始加入两个元素,变为[1, "Hello", "World", 4]
理解完万能方法下面的就都很容易理解了。
concat:拼接两个Array
,返回一个新的Array
此函数不修改当前的数组,拼接后的结果需要用新定义的数组来接收。
单纯的拼接很容易理解,有意思的是这个拼接可以自动打开Array
并把元素拼接起来。
var arr = [1,2,3];
var res = arr.concat(1,2,3,[4,5]); //结果为:[1, 2, 3, 1, 2, 3, 4, 5]
神奇的join方法
var arr = [1,2,3];
var res = arr.join('/');
res; //输出:"1/2/3"
多维数组
var arr = [[1, 2, 3], [4, 5, 6]];
arr;
多维数组输出为:
END.
【JavaScript】JS的Array的用法总结相关推荐
- javascript基础——文字变大变小className的使用及JS浮动的兼容用法
文字变大变小,详情页比较常见的那种 <!DOCTYPE html> <html lang="en"> <head><meta charse ...
- JavaScript(JS) array.splice(index, howMany, [element1][, ..., elementN])
Array对象允许在一个变量中存储多个值.它存储相同类型元素的固定大小的顺序集合.数组用于存储数据集合,但将数组看作同一类型变量的集合通常更有用.本文主要介绍JavaScript(JS) array. ...
- java鼠标js触发事件吗,JavaScript常见鼠标事件与用法分析
摘要:这篇JavaScript栏目下的"JavaScript常见鼠标事件与用法分析",介绍的技术点是"JavaScript.鼠标事件.鼠标.事件.用法.分析", ...
- 【JavaScript:语法】javascript函数定义以及常见用法
转载:javascript函数定义以及常见用法 javascript函数定义以及常见用法 我们知道,js函数有多种写法,函数声明 ,函数表达式,Function式构造函数,自执行函数,包括Es6的箭头 ...
- 《前端防坑》- JS基础 - Array.isArray()结果一定准确吗?
在研究伪数组的时候发现了一个小问题,记录下,就是Array.isArray()判断数组的方法可能与instanceof判断出的结果可能不同. 参考文章:https://www.jianshu.com/ ...
- Javascript自定义事件功能与用法实例分析
原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...
- 详解 javascript中offsetleft属性的用法(转)
详解 javascript中offsetleft属性的用法 转载 2015-11-11 投稿:mrr 我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...
- 利用Console来调试JS程序、Console用法总结
利用Console来调试JS程序.Console用法总结(1) 一 .什么是 Console Console 是用于显示 JS和 DOM 对象信息的单独窗口.并且向 JS 中注入1个 console ...
- Js中Array对象
Js中Array对象 JavaScript的Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象. 描述 在JavaScript中通常可以使用Array构造器与字面量的方式创建数组. c ...
最新文章
- Pinterest 谈实战经验:如何在两年内实现零到数百亿的月访问
- XCode编译运行出错解决思路,以及再次推荐AppCode
- 数据库中如何判断某参数为空就不执行where条件
- boost::regex模块用于测试特定于语言环境的表达式的帮助程序类
- centos6.4下安装配置JDK+TOMCAT+MYSQL笔记
- 本地连接虚拟机 Oracle数据库 报ORA-12541:TNS:no listener
- leetcode1448. 统计二叉树中好节点的数目(dfs)
- 由马化腾谈“微博修改功能”,看什么是优秀的产品经理
- weblogic时间问题
- 港媒:中国将斥资1800亿美元建全球最大5G网络
- 树形dp贪吃的九头龙(vijos1523)
- 利用tushare实现选股
- axture动画原型制作_AxureUX手机移动端交互原型通用模板精简版
- oracle 扩充语句,Oracle扩充表空间语句
- 谷歌浏览器 发送到剪切板_将Google搜索结果发送到您的新闻阅读器
- 【小猿說】以小刀会“的成败论当今创业成败
- 春节高并发抢红包的技术升华综合实战(Node.js)
- 污水处理成本高怎么办?智能网关+云平台提供你完美解决方案
- AT32 EMAC MQTT Client
- 教你十分钟写一个软件防火墙
热门文章
- Git学习(一)本地操作
- java如何给数字每三位加一个逗号_将每三个数字加上逗号处理Java代码
- c语言规定学号长度,c语言第1-9章基本概念练习题ans(最全).docx
- 服务器脱机状态,从脱机工作切换到联机工作
- python项目依赖库的导出和安装
- mysql base dir_install_mysql57.sh
- c语言里有bool变量,C语言中有没有bool类型
- jsp usebean_JSP动作标签– jsp useBean,包含,转发
- wordpress编辑插件_如何使用Tabify编辑屏幕插件减少WordPress帖子编辑器屏幕的拥挤
- iOS UICollectionView示例教程