JavaScript数组的学习
1数组的创建
var arr1 = new Array();
var arr2=[1,2,3];
2数组常用的方法:
push,pop,shift,unshift,splice,slice,sort,reverse
2.1 push方法:在元素尾端插入元素
var arr=[1,2,3];
var result = arr.push(1,3,4);//返回新数组的长度
console.log("arr:"+arr);
console.log("result:"+result);
结果:
arr:1,2,3,1,3,4
result:6
2.2 pop方法:在元素末端弹出一个元素
var arr=[1,2,3];
var result = arr.pop();//返回弹出元素的值
console.log("arr:"+arr);
console.log("result:"+result);
结果:
arr:1,2
result:3
2.3 shift方法:在元素的首位弹出一个元素
var arr=[1,2,3];
var result = arr.shift();//返回弹出元素的值
console.log("arr:"+arr);
console.log("result:"+result);
结果:
arr:2,3
result:1
2.4 unshift方法: 在元素的首位插入元素
var arr=[1,2,3];
var result = arr.unshift(4,5);//返回新数组的长度
console.log("arr:"+arr);
console.log("result:"+result);
结果:
arr:4,5,1,2,3
result:5
2.5 splice方法: 对数组截取,然后插入数据,直接操作数组本身
var arr=[1,2,3,4,5];
arr.splice(1,2,3,4);
console.log("arr:"+arr);
结果:
arr:1,3,4,4,5
分析:
第一个参数:截取开始的位置
第二个参数:截取的个数
第二个参数以后:插入的数据,如果没有第三个参数,则不插入
2.6 slice方法: 对数组截取,但不对数组本身操作
var arr=[1,2,3,4,5];
var result =arr.slice(2,4);
console.log("arr:"+arr);
console.log("result:"+result);
结果:
arr:1,2,3,4,5
result:3,4
分析:
第一个参数:截取开始的位置 为为闭区间
第二个参数:截取结束的位置 为开区间
如:[2,4)
2.7 concat方法: 对数组拼接,但不操作数组本身
var arr1 =[1,2,3];
var arr2=[3,4,5];
var result = arr1.concat(arr2);
console.log("arr1:"+arr1);
console.log("arr2:"+arr2);
console.log("result:"+result);
结果:
arr1:1,2,3
arr2:3,4,5
result:1,2,3,3,4,5
2.8 join方法: 对数组每个元素之间插入元素,但不操作数组本身
var arr =[1,2,3];
var result =arr.join("-");
console.log("arr:"+arr);
console.log("result:"+result);
结果:
arr:1,2,3
result:1-2-3
2.9 reverse方法: 把数组里的元素的位置倒过来
var arr =[1,2,3];
var result =arr.reverse();
console.log("arr:"+arr);
结果:
arr:3,2,1
2.10 sort方法: 把数组里元素排序(有缺陷)
var arr =[4,10,1,5];
var result =arr.sort();
console.log("arr:"+arr);
结果:
arr:1,10,4,5
分析:
在比较的过程中这个10是先按第一位比较再按第二位比较,所以排在了1后面,4前面。
2.11 sort方法扩张
var arr =[4,10,1,5];
function compare(value1,value2){//自定义排序规则
if(value1>value2){
return 1;
}else if(value1<value2){
return -1;
}else{
return 0;
}
}
var result =arr.sort(compare);使用自定义的排序规则 实现从小到大排序 要想实现从大到小 修改排序规则
console.log("arr:"+arr);
结果:
arr:1,4,5,10
JavaScript数组的学习的更多相关文章
- JavaScript权威设计--JavaScript数组(简要学习笔记九)
1.数组的创建 如: var a=[1.1,null,"a"]; var b=[1, ,3]; //中间的那个元素是undefined var c=[ , , ] 这里c.leng ...
- Javascript提升阶段学习
JavaScript1:javascript简介 JavaScript是一种脚本语言,能实现网页内容的交互显示,当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互的操作来 ...
- Javascript设置广告和时间表和数组的学习
<html> <head> <meta charset="utf-8"> <title></title> </he ...
- RX学习笔记:JavaScript数组操作
RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...
- Javascript经典算法学习1:产生随机数组的辅助类
辅助类 在几个经典排序算法学习部分,为方便统一测试不同算法,新建了一个辅助类,主要功能为:产生指定长度的随机数组,提供打印输出数组,交换两个元素等功能,代码如下: function ArraySort ...
- [前端JS学习笔记]JavaScript 数组
一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...
- Javascript数组操作
使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...
- 也谈面试必备问题之 JavaScript 数组去重
Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...
- 深入浅出的javascript的正则表达式学习教程
深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...
随机推荐
- 解决Eclipse中编辑xml文件的智能提示问题,最简单的是第二种方法。
Eclipse for Android xml 文件代码自动提示功能,介绍Eclipse 编辑器中实现xml 文件代码自动智能提示功能,解决eclipse 代码提示失效.eclipse 不能自动提示. ...
- 疯狂学习java web5(SSI框架)
其实前面的所有只是铺垫,目的只是为了了解现有工程是怎样的.之前直接上来就看,看了很久依然是云里雾里,所以不得已学习点基础知识,前面的基础只是蜻蜓点水一带而过,希望能起部分作用了. 发现struct2有 ...
- Spring+SpringMVC+Mybatis+MAVEN+Eclipse+项目完整环境搭建
1.新建一个Maven项目,创建父项目. 2.创建子项目模块 3.创建javaWeb项目 4.创建后的项目目录结构 5.Maven文件配置 parent父项目pom.xml文件配置 <?xml ...
- c#读取进程列表判断程序是否已经启动(转)
方法一: using System.Diagnostics; Process[] vProcesses = Process.GetProcesses(); foreach (Process vProc ...
- 让 IE6/7/8 也支持HTML5标签的方式
方式一:引入Google的HTML5.js线上文件 <!–[if lt IE9]> <script src="http://html5shiv.googlecode.com ...
- SublimeText插件Anaconda如何关闭警告框
之前在学习python的时候,使用了代码编辑器Sublime Text 3并安装了强大的Anaconda插件.瞬间让Sublime Text3变身为Python的IDE. 在使用过程中,侧边栏的白点和 ...
- 求数列的和 AC 杭电
求数列的和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- light oj 1248 第六周E题(期望)
E - 期望(经典问题) Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Descri ...
- 尝试跑一跑Scut
前段时间都在用 IIS+WCF+Redis+MSSQL 的框架做服务器,前段时间看到了 Scut 的开源框架,整个架构还是蛮干净整洁的... 今天抓来跑一跑. 按照教程安装好所有的环境,版本是6.7. ...
- 改进基于Boost.Asio的聊天服务
Boost.Asio是个非常易用的C++异步网络库,官方文档中一个示例是聊天服务,分为chat_message.chat_client.chat_server三个部分.chat_server的启动代码 ...