数组的创建:

  数组可以使用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. Python之Pandas中Series、DataFrame实践

    Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...

  2. web测试--登录界面怎么测?

    具体需求: 有一个登陆页面, 上面有2个textbox, 一个提交按钮.  请针对这个页面设计30个以上的测试用例. 此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了 ...

  3. JS高级——弹出框的美化

    替换原有的alert方法,window.alert=function(){} https://blog.csdn.net/kirsten_z/article/details/76242286 http ...

  4. JavaScript判断

    if...else: if...else语句是在指定的条件成立时执行的代码,在条件不成立时执行else后的代码. 语法: if(条件) {条件成立时执行的代码 }else{ 条件不成立的时执行的代码} ...

  5. 6.11 将分割数据转换为多值IN列表

    问题 已经有了分隔数据,想要将其转换为WHERE子句IN列表中的项目.考虑下面的字符串: 7654,7698,7782,7788 要将该字符串用在WHERE子句中,但是下面的SQL语句是错误的,因为E ...

  6. vue+axios上传文件

    单独上传文件: <input class="file" name="file" type="file" accept="im ...

  7. oracle关闭

    Alert log 要每天查看 abort 关闭冷备会无法使用

  8. BZOJ1509: [NOI2003]逃学的小孩 (树形DP)

    题意:给一棵树 选三个点A,B,C 求A到B的再从B到C的距离最大值 需要满足AB的距离小于AC的距离 题解:首先树上的最大距离就想到了直径 但是被样例误导了TAT BC两点构成了直径 我一开始以为A ...

  9. 右键快捷打开Git Bash here失败

    右键快捷打开Git Bash here失败,提示: Error: Could not fork child process: Resource temporarily unavailable (-1) ...

  10. Redis多实例配置以及主从同步

    一.多实例配置 1.准备俩配置文件,开两个就准备两个 redis-6380.conf redis-6381.conf 2.分别写入配置信息(这里简化了配置) # 运行在6380端口 bind 172. ...