目录

  • Array的长度相关问题
  • indexOf取元素下标
  • slice操作
  • pushpop操作
  • unshiftshift操作
  • sort操作
  • reverse操作
  • spilce操作
  • concat函数
  • join函数
  • 多维数组

Array的长度相关问题

可以直接获取Array的长度属性:

var arr = [1,2,3];
var len = arr.length; // 直接计算得到3

很有意思的是,Array是一个动态变化的数据结构,一般来说只是读取类的属性值,但是在JS中修改Arraylength的值,变化时直接反应在原数据上的。即:扩大时新的值为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的尾部当做栈首理解,那么pushpop操作就是成对的对栈的操作。只是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的用法总结相关推荐

  1. javascript基础——文字变大变小className的使用及JS浮动的兼容用法

    文字变大变小,详情页比较常见的那种 <!DOCTYPE html> <html lang="en"> <head><meta charse ...

  2. JavaScript(JS) array.splice(index, howMany, [element1][, ..., elementN])

    Array对象允许在一个变量中存储多个值.它存储相同类型元素的固定大小的顺序集合.数组用于存储数据集合,但将数组看作同一类型变量的集合通常更有用.本文主要介绍JavaScript(JS) array. ...

  3. java鼠标js触发事件吗,JavaScript常见鼠标事件与用法分析

    摘要:这篇JavaScript栏目下的"JavaScript常见鼠标事件与用法分析",介绍的技术点是"JavaScript.鼠标事件.鼠标.事件.用法.分析", ...

  4. 【JavaScript:语法】javascript函数定义以及常见用法

    转载:javascript函数定义以及常见用法 javascript函数定义以及常见用法 我们知道,js函数有多种写法,函数声明 ,函数表达式,Function式构造函数,自执行函数,包括Es6的箭头 ...

  5. 《前端防坑》- JS基础 - Array.isArray()结果一定准确吗?

    在研究伪数组的时候发现了一个小问题,记录下,就是Array.isArray()判断数组的方法可能与instanceof判断出的结果可能不同. 参考文章:https://www.jianshu.com/ ...

  6. Javascript自定义事件功能与用法实例分析

    原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...

  7. 详解 javascript中offsetleft属性的用法(转)

    详解 javascript中offsetleft属性的用法 转载  2015-11-11   投稿:mrr    我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...

  8. 利用Console来调试JS程序、Console用法总结

    利用Console来调试JS程序.Console用法总结(1) 一 .什么是 Console Console 是用于显示 JS和 DOM 对象信息的单独窗口.并且向 JS 中注入1个 console ...

  9. Js中Array对象

    Js中Array对象 JavaScript的Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象. 描述 在JavaScript中通常可以使用Array构造器与字面量的方式创建数组. c ...

最新文章

  1. Pinterest 谈实战经验:如何在两年内实现零到数百亿的月访问
  2. XCode编译运行出错解决思路,以及再次推荐AppCode
  3. 数据库中如何判断某参数为空就不执行where条件
  4. boost::regex模块用于测试特定于语言环境的表达式的帮助程序类
  5. centos6.4下安装配置JDK+TOMCAT+MYSQL笔记
  6. 本地连接虚拟机 Oracle数据库 报ORA-12541:TNS:no listener
  7. leetcode1448. 统计二叉树中好节点的数目(dfs)
  8. 由马化腾谈“微博修改功能”,看什么是优秀的产品经理
  9. weblogic时间问题
  10. 港媒:中国将斥资1800亿美元建全球最大5G网络
  11. 树形dp贪吃的九头龙(vijos1523)
  12. 利用tushare实现选股
  13. axture动画原型制作_AxureUX手机移动端交互原型通用模板精简版
  14. oracle 扩充语句,Oracle扩充表空间语句
  15. 谷歌浏览器 发送到剪切板_将Google搜索结果发送到您的新闻阅读器
  16. 【小猿說】以小刀会“的成败论当今创业成败
  17. 春节高并发抢红包的技术升华综合实战(Node.js)
  18. 污水处理成本高怎么办?智能网关+云平台提供你完美解决方案
  19. AT32 EMAC MQTT Client
  20. 教你十分钟写一个软件防火墙

热门文章

  1. Git学习(一)本地操作
  2. java如何给数字每三位加一个逗号_将每三个数字加上逗号处理Java代码
  3. c语言规定学号长度,c语言第1-9章基本概念练习题ans(最全).docx
  4. 服务器脱机状态,从脱机工作切换到联机工作
  5. python项目依赖库的导出和安装
  6. mysql base dir_install_mysql57.sh
  7. c语言里有bool变量,C语言中有没有bool类型
  8. jsp usebean_JSP动作标签– jsp useBean,包含,转发
  9. wordpress编辑插件_如何使用Tabify编辑屏幕插件减少WordPress帖子编辑器屏幕的拥挤
  10. iOS UICollectionView示例教程