今天经理要我从新看一遍js,当我再看《精通js和jquery》这本书时,发现关于数组的这章节讲的很少,于是想自己总结一下数组的常用方法。

定义数组:

var arr = new Array(12);

arr[10] = “cmc”;
var arr = new Array(); //无法确定一个数组的长度时

var arr = [“chen”,”liu”,”huang”];

var arr = new Array( [“chen”,”liu”,”huang”]);

var a = new Array(5); //指创建长度为5的数组

var a = new Array([5]); //指创建一个数组,长度为1,并且第一位是5

数组属性:

1. length属性:Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,

JavaScript数组的length属性是可变的,这一点需要特别注意。arr.length=0;,这就是一种清空js数组的方式

2. constructor 指定建立地象原型(prototype)函数

3. index 代表数组组件的索引值

4.prototype 用以建立自定义的对象属性

数组方法:

toString 将数组转为String

concat   方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。array1.concat([item1[,   item2[,   .   .   .   [,   itemN]]]])

join   方法   :返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。arrayObj.join(separator) 与C#不同的是这里是直接通过数组调用出来返回给一个字符串.

split  方法  :返回数组 基本和C#一样  var s="1_2_3"; var ary=s.split("_"); 参数是字符串而不是字符

pop   方法   :移除数组中的最后一个元素并返回该元素。arrayObj.pop()

push   方法   :将新元素添加到一个数组中,并返回数组的新长度值。arrayObj.push([item1   [item2   [.   .   .   [itemN   ]]]])

reverse   方法   :返回一个元素顺序被反转的   Array   对象。arrayObj.reverse(   ) 注意这里是返回一个原来的数组而不是创建了一个新的数组.

shift   方法   :移除数组中的第一个元素并返回该元素。arrayObj.shift(   )

slice   方法   :返回一个数组的一段。arrayObj.slice(start,   [end])  

sort   方法   :返回一个元素已经进行了排序的   Array   对象。arrayobj.sort(sortfunction)  

               如果 sort()里面没有参数那么将按照字母顺序排列

               如果要用从大到小顺序排列里面需要带参数sort(function(a,b){return b-a});

splice   方法   :从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。arrayObj.splice(start,   deleteCount,   [item1[,   item2[,   .   .   .   [,itemN]]]])

unshift   方法   :将指定的元素插入数组开始位置并返回该数组。arrayObj.unshift([item1[,   item2   [,   .   .   .   [,   itemN]]]]) 在IE下无效,返回undefined fox下可以

alert(arr01.split(“”).reverse().join(“”));//先将每个字符分割为一个数组,然后反序数 组,最后将数组无连接符的转化为字符串,反转数组的字符

数组的三种清空方法:

方式1,splice 

var ary = [1,2,3,4];
ary.splice(0,ary.length);
console.log(ary); // 输出 [],空数组,即被清空了

方式2,length赋值为0 

目前
Prototype中数组的 clear 和mootools库中数组的 empty 使用这种方式清空数组。

int[] ary = {1,2,3,4};
ary.length = 0; 

方式3,赋值为[] 

这里其实并不能说是严格意义的清空数组,只是将ary重新赋值为空数组,之前的数组如果没有引用在指向它将等待垃圾回收。

Ext库Ext.CompositeElementLite类的 clear 使用这种方式清空。

var ary = [1,2,3,4];
ary = []; // 赋值为一个空数组以达到清空原数组 

清空方式的选择:

由于第三种它只是重新给数组赋值,将其覆盖。并不是真正意义的清空,所以他的效率比较高。第一种过于繁琐,而第二种是真的清空,又很简单,所以一般使用推荐第二种。

javascript数组的属性、方法和清空-最全!!!(必看)的更多相关文章

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

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

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

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

  3. JavaScript 数组相关基础方法

    文章来源于:https://www.cnblogs.com/dolphinX/p/3353590.html 创建数组 构造函数 1.无参构造函数,创建一空数组 var a1=new Array(); ...

  4. <javaScript> 数组去重的方法总结(2017年)

    现在要求去重下面这个数组: const arr = [1, 2, 3, 3, 3, '0', '1', '2', '测试', '重复', '重复', NaN, NaN, false, false]; ...

  5. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

  6. JavaScript——数组的indexOf()方法在IE8中的兼容性问题

    昨天在工作中遇到一个问题:数组的indexOf()方法在IE8中无效. 如以下代码在IE8中报错“对象不支持“indexOf”属性或方法”: var arr = [1,2,3]; var index ...

  7. javascript 数组去重的方法

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 方法一 //注意有一个元素是空的 var test1 = [0, 0, 1, 1, 2, 'sss', 2 ...

  8. JavaScript数组的一些方法集合

    数组方法集合 push()添加到数组末尾,并返回修改后数组的长度 var a=array.push('a','b'); alert(a);//2 pop() 移除数组最后一项,返回移除的项. shif ...

  9. Javascript数组Array的方法总结!

    1.join() 将数组的元素组成一个字符串,以分隔符连接,如果省略则默认逗号为分隔符,该方法只接收一个参数:分隔符.此方法不会改变原数组. let arr = [1,2,3,4] let arr1 ...

随机推荐

  1. 解决初次安装PyCharm后 No Python interpreter selected的问题

    原文链接:https://liuzhichao.com/p/1543.html PyCharm 是由JetBrains打造的一款 Python IDE.具有智能代码编辑器,能理解 Python 的特性 ...

  2. 安装nodeJs静态服务器(NodeJs Express MVC 框架)

    安装 NodeJs Express MVC 框架   新建项目文件夹   打开cmd 执行以下操作:   一.使用Express框架 1)安装express3 $: npm install -g ex ...

  3. Python+Selenium 利用ID,XPath,tag name,link text,partial link text,class name,css,name定位元素

    使用firefox浏览器,查看页面元素,我们以“百度网页”为示例 一.ID定位元素    利用find_element_by_id()方法来定位网页元素对象 ①.定位百度首页,输入框的元素 ②.编写示 ...

  4. Kmeanns图片压缩

    from sklearn.datasets import load_sample_image#先导入数据包 china = load_sample_image("china.jpg" ...

  5. 动态库的链接和链接选项-L,-rpath-link,-rpath

    https://my.oschina.net/shelllife/blog/115958 链接动态库 如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置.linux的可执行程序在执行 ...

  6. final,static,abstract

    一.final 1.可以修饰属性,表示常量,其值在运行期间不允许改变.常量必须赋初始值,初始值可以在声明出,构造方法的任意一个地方赋 优点:增强程序的可读性,可维护性 2.可以修饰方法,表示该方法不能 ...

  7. etcd 增减节点

    一.查看集群节点 etcdctl --endpoint=https://10.2.0.6:2379 --ca-file=/etc/etcd/ca.pem --cert-file=/etc/etcd/c ...

  8. js怎么把数字转化为字母(A,B.....AA,AB,..)

    function createCellPos( n ){ var ordA = 'A'.charCodeAt(0); var ordZ = 'Z'.charCodeAt(0); var len = o ...

  9. django 如何接收bootstrap-table传送的 ajax数组

    今天在用django传递id的时候,使用 alert(ids)以及console.log("id:",ids),都可以看到是把选中的数据的id打印出来的,用console.log可 ...

  10. Lab keepalived

    [root@node1 keepalived]#cat keepalived.conf ! Configuration File for keepalived global_defs { notifi ...