JavaScript数组

数组(Array)是一组有序数据集合,拥有大量方法,适合完成一些复杂的运算。

定义数组

定义数组通过构造函数Array()和运算符new来实现,具体方法如下:

1. 定义空数组:

var a = new Array();

通过这种方式定义的数组是 一个没有任何元素的空数组。

2. 定义带有参数的数组:

var a = new Array(1,2,3,"4","5");

数组中的每个参数都表示一个元素值,数组的元素没有类型限制。可以通过数组下标来定位每个元素。通过数组的length属性确定数组的长度。

3. 定制指定长度的数组:

var a = new Array(6);

采用这种方式定义的数组拥有指定的元素个数,但是没有为元素初始化赋值,这时它们的初始值都是undefined。

定义数组时,可以省略new运算符,直接使用Array()函数来实现。

4. 定义数组直接量:

var a = [1, 2, 3, "4","5"];

存取数组元素

使用[]运算符可以存取数组元素的值。同时可以修改元素的值。

var a = [1, 2,3,"4", "5"];
a[2] = 2;
alert(a[2]);

使用length属性和数组下标,可以遍历数组元素,从而实现动态控制数组元素。

var str = "";
var a = [1,2,3,"4","5"];
for(var i = 0; i < a.length; i++){str += a[i] + "-";
}
document.write(a + "<br/>");
document.write(str);

1. 改变数组的长度:
数组的大小不是固定的,可以动态增加或删除数组元素。

var a = [1,2,3,4,5];
a.length = 4;
document.write(a);

当改变数组的长度时,会自动在数组的末尾增加或删除元素,以实现改变数组的大小。
使用delete运算符可以删除数组元素的值,但是不糊i改变length属性的值。

2. 使用push()和pop()方法来操作数组:

  • push():在数组末尾插入一个或多个元素
  • pop():从末尾依次取出一个或多个元素,并从数组中删除掉
var a = [];
a.push(1,2,3);//得到a[1,2,3]
a.push(4,5);    //得到a[1,2,3,4,5]
a.pop();        //得到a[1,2,3,4]

3. 使用unshift()和shift()方法:
unshift()和shift()方法与push()和pop()方法类似,但是是作用于数组头部

var a = [];
a.unshift(1,2,3);//得到a[1,2,3]
a.unshift(4,5); //得到a[4, 5,1,2,3]
a.shift();      //得到a[5,1,2,3]

4. 使用splice()方法:
该方法是一个通用删除和插入元素的方法,它可以在数组指定的位置开始删除或插入元素。
splice()方法包含3个参数:
1:只当插入的起始位置
2:指定要删除元素的个数
3:第三个参数开始表示插入的具体元素

var a = [1,2,3,4,5,6];
var b = a.splice(2,2);
document.write(a + "<br />");  //输出[1,2,5,6]
document.write(b);              //输出[3,4]

数组应用

1. 数组与字符串互转:
示例:使用join()方法可以把数组转换为多种形式的字符串。join()方法包含一个参数,用来定义合并元素的连接字符。如果join()方法不提供参数,则默认使用逗号。

var a = [1,2,3,4,5];
a = a.join("-");
document.write("a类型 = " + typeof(a) + "<br/>");
document.write("a的值 = " + a);

示例:使用split()方法把字符串劈开为一个数组,该方法包含两个参数:
1:指定劈开的分隔符
2:指定返回数组的长度

var a = [1,2,3,4,5];
a = a.join("-");
var s = a.split("-");
document.write("s类型 = " + typeof(s) + "<br/>");
document.write("s的值 = " + s);

数组排序

使用reverse()方法可以颠倒数组元素的顺序。该方法是在元素组基础上进行操作的,不会新建数组。

var a = [1,2,3,4,5];
var a = a.reverse();
document.write(a);//输出[5,4,3,2,1]

sort方法能够对于数组中的元素进行排序,排序的方法通过其参数来决定。这个参数是一个比较两个元素值的闭包。如果省略参数,则sort()方法将默认的规则对数组进行排序。

var a = [3,2,5,1,4];
var f = function(x,y){return y - x;
};
var b = a.sort(f);
document.write(b);//输出[5,4,3,2,1]

连接数组

concat()方法能够把该方法中的参数追加到指定数组中,形成一个新的连接数组。

var a = [1,2,3,4,5];
var b = a.concat(4,5);
document.write(b);  //输出[2,3,4,5,6,4,5]var a = [1,2,3,4,5];
var b = a.concat([4,5],[1,[2,3]]);
document.write(b);//输出[1,2,3,4,5,4,5,1,2,3]

截取子数组

slice()方法将返回数组中指定的片段,所谓片段就是数组中的一个子数组。
该方法包含两个参数,它们指定要返回子数组在原数组中的起止点:
1:指定的元素是被截取的范围之内
2:指定的元素不在被截取的范围之内
(左闭右开)

var a = [1,2,3,4,5,6,7,8,9];
var b = a.slice(2, 5);
document.write(b);//输出[3,4,5]

JS--JavaScript数组Array(join、split、reverse、concat、slice)详解相关推荐

  1. JS 数组 isAarray() typeof push() unshift() splice()替换/删除/插入 slice()切片 join() split() reverse concat

    lianxuudadian    isAarray() shift转移 unshift取消转移 push pop   unshift shift splice 粘接 slice 切片 Join() s ...

  2. JavaScript数组的高级用法-reduce和reduceRight详解

    2019独角兽企业重金招聘Python工程师标准>>> reduce 方法(升序) 语法: array1.reduce(callbackfn[, initialValue]) 参数 ...

  3. JS(javascript)中this的几种用法实例详解

    本文主要介绍了javascript(以下简称js)中 this 用法,结合具体实例详细分析一下js中 this 的含义及使用方法,需要的朋友可以参考下. this 是 JavaScript 语言的一个 ...

  4. html5 截取字符串,JS截取字符串之substring、substr和slice详解

    本文详细的介绍了JavaScript中substring().substr()和slice()三个js字符串截取的方法,substring()方法用于提取字符串中介于两个指定下标之间的字符.subst ...

  5. JS中数组(Array)、Json对象长度(length)获取方法

    JS中数组(Array).Json对象长度(length)获取方法 1.数组 var array = []; var length = array.length; 2.JSON对象 1)方法1: va ...

  6. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

  7. JavaScript(js)事件冒泡、事件捕获、事件委托详解

    JavaScript(js)事件冒泡.事件捕获.事件委托详解 1.什么是事件 JavaScript和HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间.可以使用监听 ...

  8. java string()函数_转载java String.split()函数的用法详解

    转载java String.split()函数的用法详解 如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!在java.lang包中有String.split()方法的原型是: p ...

  9. 【JavaScript 教程】ES6 中的 Promise对象 详解

    [JavaScript 教程]ES6 中的 Promise对象 详解 1.Promise对象含义 promise是异步编程的一种解决方法. 所谓promise,简单说是一个容器,里面保存着某个未来才会 ...

  10. javascript中的Base64.UTF8编码与解码详解

    javascript中的Base64.UTF8编码与解码详解 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能 ...

最新文章

  1. 简单粗暴告诉你什么是区块链
  2. 日志多租户架构下的Loki方案
  3. Go 语言:我那么值钱,我骄傲了吗?
  4. 联想B450系列安装XP且开启AHCI
  5. 计算机网络:网络设备知识笔记
  6. Mr.J--Vue之v-cloak
  7. java jpeg压缩算法_在创建JPEG时,我可以更改Java的ImageWriter使用的压缩算法吗?
  8. 把python37添加到环境变量配置_linux设置python环境变量 分类: python ...
  9. JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
  10. Windows 8 Directx 开发学习笔记(八)要有光
  11. jquery on()绑定的点击事件在js动态新添加的元素上无效
  12. 标准c /c++宽字节与多字节的转换
  13. 用计算机编程解决土方调配,LINGO在土方调配计算问题应用.doc
  14. LiveData+Room
  15. Java 格式化xml字符串
  16. 3Dmax制作立体的文字教程
  17. EasyClick 易点云测 IOS版自动化测试工具
  18. CSSJS弹出层效果,兼容所有浏览器
  19. PowerApps 中管理本地数据网关
  20. 性能测试怎么监控服务器,性能测试篇 :Jmeter监控服务器性能

热门文章

  1. sed 技巧一例:特定位置插入
  2. excel使用vb选中指定单元格,到指定行的最后一行有数据的等行数的单元格区间(列等高复制)
  3. 小米6MIUI稳定版安装谷歌相机
  4. iNFTnews丨世界首个元宇宙时装周将在Decentraland举办
  5. 微信内置浏览器调试和调试微信内的H5页面汇总(持续更新...)
  6. super this
  7. 500以内什么耳机好?盘点500元蓝牙耳机性价比之王
  8. 学习笔记:多目标跟踪对车辆进行测速
  9. echart显示多组数据
  10. 香港虚拟主机与国内虚拟主机区别