数组的创建:

  数组可以使用Array构造函数来创建,或者使用[]快速创建。

  1. Array构造函数创建数组:

    无参数,创建空数组:

var arry = new Array();

    参数为一个数字,指定数组长度

var array = new Array(3);

    带初始化数据,创建数组并初始化参数数据

var array = new Array(1,'34','ceshi')

  2.  "[]"创建数组:

    使用[],创建空数组:

var array = [];

   传入初始化数据

var array = [1,'34','ceshi'];

判断数组类型:

  数组是继承自Object的原型,typeof Array 返回值为'objiect'。如果想进一步判断就需要用以下方法:

  对于一个网页或一个全局作用域而言,使用instanceof操作符可以做到:

var array = [];
if(array instanceof Array){
alert('判断成功')
}

  对于instanceof的局限性,为了解决这个问题,ECMAScripts5新增Array.isArray(value)方法:

var arr = [];
if(Array.isArray(arr)){
alert('判断成功')
}

数组的一些方法:

  * 添加元素方法:push() 、 unshift()、splice()

    1.push(item1,item2,...): 往数组的末尾添加一个或多个元素,并返回数组新的长度

var arr = [1,2,3];
arr.push(4,5);
alert(arr);//1,2,3,4,5

    2. unshift(item,item2,...): 往数组的头部添加一个或多个元素,并返回数组新长度

var arr = [1,2,3];
arr.unshift(4,5);
alert(arr);//4,5,1,2,3

    3. splice(index,0,item1,item2,...):将一个或者多个元素插入到数组中指定的index位置,插入位置的元素自动后移

var arr = [1,2,3];
arr.splice(1,0,4,5); //在第二个个元素位置添加4,5。
alert(arr)//1,4,5,2,3

* 删除元素方法: pop() 、shift()、splice()

    1.pop(): 删除尾部元素  

var arr = [1,2,3];
arr.pop();
alert(arr);//1,2

    2.shift(): 删除头部元素

var arr = [1,2,3];
arr.shift();
alert(arr);//2,3

    3.splice(index,count): 从指定位置index开始删除,删除指定的count个元素。

var arr = [1,2,3,4];
var a = arr.splice(2,2); //从第三个元素开始,删除两个元素,并返回要删除的元素
alert(a);//3 ,4
alert(arr)//1,2

* splice 可以实现删除元素或者添加新元素

    splice方法参数描述:

      1.第一个参数:开始删除元素的索引值

      2.第二个参数:表示要删除元素的个数

      3. 第三个参数(以及第三个参数后面的所有参数):表示要插入的新元素(如果只有两个,可以忽略。表示只删除元素不添加元素)

    下面列出几个例子:

    1.删除数组的某一个元素: array.splice(index,1)

var arr = [1,2,3];
var a = arr.splice(2,1); //删除第三个元素,并返回要删除的元素
alert(a);//3
alert(arr)//1,2

    2.在某个元素后添加元素:array.splice(index,0,value,....)

var arr = [1,2,3];
arr.splice(1,0,4,5); //在第一个元素后面添加4,5
alert(arr)//1,4,5,2,3

    3. 删除某个元素,并且添加新的元素: array.splice(index,index,value,...)

var arr = [1,2,3];
var a = arr.splice(1,2,4,5); //从第二个元素开始删,删除两个元素,然后在原第二个元素的位置添加两个元素4,5
alert(a)//2,3
alert(arr)//1,4,5

* 将数组转化成字符串: join()

  join(separator):将数组中的每个元素值两在一起,中间用指定的separator隔开;如果没有设置separator,默认用逗号隔开

var arr = [1,2,3,4];
var arr2 = [1,2,3,4];
var str = arr.join('_');
var str2 = arr.join();
alert(str);//1_2_3_4
alert(str2);//1,2,3,4

* 数组的截取:slice()

  slice(indexstart,indexend): 从索引indexstart开始截取,直到索引indexend之前结束,索引end元素不包括;如果不设置indexend,则表示从indexstart开始一直截取到最后。

var arr = [1,2,3,4,5];
var newArr = arr.slice(2,3)//截取第三个元素
var newArr2 = arr.slice(2,4)//从第三个元素开始到第四个元素
var newArr3 = arr.slice(1)//从第二个元素开始截取直到最后一个元素
alert(newArr);//3
alert(newArr2);//3,4
alert(newArr3);//2,3,4,5

* 数组合并:concat()

  concat(item1,item2,....): 将多个数组或者字符串组合为一个数组,并返回一个新的数组。如果没有参数,就相当于重新copy一个数组。

var arr = [1,2,3,4,5];
var arr2 = [6,7,8,9];
var newArr = arr.concat(4,5);
var newArr2 = arr.concat(arr2);
var newArr3 = arr.concat(arr2,[10,11]);
var newArr4 = arr2.concat();
alert(newArr);//1,2,3,4,5,4,5
alert(newArr2);//1,2,3,4,5,6,7,8,9
alert(newArr3);//1,2,3,4,5,6,7,8,9,10,11
alert(newArr4)//6,7,8,9

* 数组的拷贝:slice()、concat() 

  1.slice(0):返回一个新的数组,注:是一个新的数组不是指向

var arr = [1,2,3,4];
var newarr = arr.slice(0);
alert(newarr)//1,2,3,4

  2.concat():返回一个新的数组,注:是一个新的数组不是指向

var arr = [1,2,3,4];
var newarr = arr.concat();
alert(newarr)//1,2,3,4

* 数组排序:reverse()、sort()

  1.reverse():反转元素

var arr = [1,2,3,4,5];
arr.reverse();
alert(arr)// 5,4,3,2,1

  2.sort():对数组元素排序,

    按照字母顺序排列,即按照ASCII进行生序排列

var arr = ['c','d','abc','bf','e'];
arr.sort();
alert(arr)// 'abc','bf','c','d','e'

    如果要排序数值,就需要使用一个排序函数

//排序函数
function sortNumber(a,b){
return a-b;
}
var arr = [1,100,3,21,101,6];
arr.sort(sortNumber);
alert(arr)// 1,3,6,21,100,101

javascript 数组总结的更多相关文章

  1. Javascript数组操作

    使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...

  2. Javascript数组操作(转)

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...

  3. JavaScript 数组

    JavaScript 数组 简介:数组是值的有序集合,JavaScript在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改. 一:创建数组 ...

  4. 也谈面试必备问题之 JavaScript 数组去重

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  5. js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法

    var  questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...

  6. JavaScript 数组 length 属性获取数组长度或设置数组元素的数目

    JavaScript 数组 length 属性 JavaScript 数组 length 属性可返回或设置或组中元素的数目,语法如下: array_object.length 利用 length 属性 ...

  7. 【读书笔记】-- JavaScript数组

    数组是一段线性分配的内存,它通过整数计算偏移并访问其中的元素.大多数的语言都会要求一个数组的元素是相同类型,但JavaScript数组可以包含任意类型. var misc = ['string', n ...

  8. 什么才是正确的javascript数组检测方式

    前面的话 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具——typeof ...

  9. javascript数组对象排序

    javascript数组对象排序 JavaScript数组内置排序函数 javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组.对象数组排序,其实用的就是原生的s ...

  10. javascript数组的知识点讲解

    javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...

随机推荐

  1. TensorFlow OOM when allocating tensor with shape[5000,384707]

    在session范围内不要进行eval()或者convert_to_tensor()操作, 否则会造成OOM,或者报出错误:GraphDef cannot be larger than 2GB usi ...

  2. Windows离线安装Python第三方库的方法

    在window中,离线安装第三方模块, 1.下载第三方库的压缩文件,解压,将解压后的文件放到Python安装目录下的Lib\site_packages中 2. 将Python添加到环境变量里 3.进入 ...

  3. blender_(uv应用)................http://digitalman.blog.163.com/blog/static/23874605620174172058299/

    轻松学习Blender基础入门之九:UV-1 2017-06-21 14:24:49|  分类: Blender |举报 |字号 订阅     下载LOFTER 我的照片书  |   [前言]     ...

  4. CAD控件:QT开发使用控件入门

    1. 环境搭建: 3 1.1. 安装Qt 3 1.2. 安装Microsoft Windows SDK的调试包 6 2. QT中使用MxDraw控件 7 1.3. 引入控件 7 3. 打开DWG文件 ...

  5. 部署web服务器的配置——补充mysql和tomcat

    今天想到了关于mysql的一些配置,以后关于配置mysql和tomcat相关的内容也会补充在这里. tomcat: 1. 更改内存(要设置tomcat内存,解决内存溢出的问题):安装版tomcat,打 ...

  6. 搜索--P1605 迷宫

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  7. subprocess操作命令

    import subprocess 一. run()方法 --->括号里面传参数,主要有cmd, stdout, shell, encoding, check 1.直接传命令 2.命令带参数要以 ...

  8. 阿里云安装nodejs

    cd进入root目录下: cd /root 下载node.js安装包 wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.x ...

  9. Laravel学习:请求到响应的生命周期

    Laravel请求到响应的整个执行过程,主要可以归纳为四个阶段,即程序启动准备阶段.请求实例化阶段.请求处理阶段.响应发送和程序终止阶段. 程序启动准备阶段 服务容器实例化 服务容器的实例化和基本注册 ...

  10. 电商架构设计-通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性

    个人观察 1.通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性. 2.单一职责原则SRP,真的很关键,广大程序员需要不断深入理解这个原则. 3.架构图是架构师的重要输出,通过图 ...