1、属性

a.length--设置或返回数组元素的数目

var a=[1,2,3,45,5];
alert(a.length=6) 结果:6
alert(a[5]) 结果:undefined

b.constructor--返回构造函数的引用

var test=new Array();
alert(test.constructor==Array); true

2、方法

a.删除或添加类

1.push()--向数组的末尾添加一个或更多元素,并返回新的长度

var a=[1,2,3,4,5];
alert(a.push('a','b')); 结果:7
alert(a); 结果:1,2,3,4,5,a,

2.unshift()--向数组的开头添加一个或更多元素,并返回新的长度

var a=[1,2,3,4,5];
alert(a.unshift('a','b')); 结果:7
alert(a); 结果:a,b,1,2,3,4,5

3.pop()--删除数组的最后一个元素,返回删除的元素

var a=[1,2,3,4,5];
alert(a.pop()); 结果:5
alert(a); 结果:1,2,3,4

4.shift()--删除数组的第一个元素,返回删除的元素

var a=[1,2,3,4,5];
alert(a.pop()); 结果:1
alert(a); 结果:2,3,4,5

5.splice(index,num,item1,.....itemX)--删除元素,并向数组添加新元素

  index    必需。从何处开始添加或删除,必须是数值类型(数组的下标)
  num    必需。规定了删除的个数,如果是0,则不删除
  item    可选。需要添加的元素,可以当作替换的元素

  如果有删除的元素,返回删除的元素;如果没有删除的元素,返回为空,添加的元素在index值前面

var a=[1,2,3,4,5];
alert(a.splice(0,1,'a','b')); 结果:1
alert(a); 结果:a,b,2,3,4,5

 b.数组的转换

join(separator)--将数组分割成字符串

  separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符,返回结果就是组合成的字符串

var a=[1,2,3,4,5];
alert(a.join('-')); 结果:1-2-3-4-5

 c.数组的分割

slice(start,end)--从某个已有的数组返回选定的元素

  start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

  end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

var a=[1,2,3,4,5];
alert(a.slice(1,4)); 结果:2,3,4
alert(a.slice(-4,-1)); 结果:2,3,4
alert(a.slice(-2)); 结果:4,5

不包括,end值的元素

d.排序(冒泡排序)

sort(sortby)    对数组的元素进行排序

  sortby:可选。规定排序顺序。必须是函数。如果没有参数,则按照字母的编码进行排序.

sortby会提供两个参数(a,b)
a<b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值
a=b,则返回 0。
a>b,则返回一个大于 0 的值

var a=[1,2,3,22,5];
alert(a.sort()); 结果:1,2,22,3,5
alert(a.sort(function(a,b){return b-a})); 结果:22,5,3,2,1
alert(a.sort(function(a,b){return a-b})); 结果:1,2,3,5,22

f.数组的连接

concat()--连接两个或更多的数组,并返回结果,对原数组没有任何影响

var a=[1,2,3,22,5];
var b=['a','b','c'];
alert(a.concat(b)); 结果:1,2,3,22,5,a,b,c

代码实践:

----------------冒泡排序--------------
var a=[34,13,8,22,5];
function arrsort(){
for(var i=0;i<=this.length;i++){
for(var j=0;j<=this.length-1;j++){
var aa=this[j];
if(this[j]<this[j+1]){
this[j]=this[j+1];
this[j+1]=aa;
}
}
}
return this;
}
Array.prototype.arrSort=arrsort;
alert(a.arrSort()); 结果:34,22,13,8,5
-----------------删除数组的重复元素--------------
var a=[34,13,22,22,5,'aa','aa'];
function arrsort(){
for(var i=0;i<=this.length;i++){
for(var j=0;j<=this.length-1;j++){
if(this[j]===this[j+1]){
this.splice(j,1);
}
}
}
return this;
}
Array.prototype.arrSort=arrsort;
alert(a.arrSort()); 结果:34,13,22,5,aa

javascript笔记整理(数组对象)的更多相关文章

  1. javascript笔记整理(对象遍历封装继承)

    一.javascript对象遍历 1.javascript属性访问 对象.属性名 对象['属性名'] var obj={name:'chen',red:function(){ alert(1);ret ...

  2. javascript笔记整理(对象的继承顺序、分类)

    Object.prototype.say=function(){ alert("我是顶层的方法"); } children.prototype=new parent(); pare ...

  3. javascript笔记整理(对象基础)

    一.名词解释 1.基于对象(一切皆对象,以对象的概念来编程) 2.面向对象编程(Object Oriented Programming,OOP) A.对象(JavaScript 中的所有事物都是对象) ...

  4. 运维开发笔记整理-QueryDict对象

    运维开发笔记整理-QueryDict对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 客户端发送数据请求有很多种,相信运维人员已经很清楚了,如果不太清楚的话可以参考我之前的学习笔 ...

  5. 运维开发笔记整理-JsonResponse对象

    运维开发笔记整理-JsonResponse对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用HttpResponse发送json格式的数据 1>.HttpRespo ...

  6. 运维开发笔记整理-Request对象与Response对象

    运维开发笔记整理-Request对象与HttpResponse对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.request对象 1>.什么是request 首先,我 ...

  7. javascript中的数组对象

    1.创建数组的三种方式: 1.1 var 数组名=[元素1,元素2,元素3...]; 例如: var arr1=[1,2,3,4]; 1.2 var 数组名=new Array(元素1,元素2,元素3 ...

  8. javascript:类数组 -- 对象

    在javascript中,对象与数组都是这门语言的原生规范中的基本数据类型,处于并列的位置. 类数组:本质是一个对象,只是这个 对象  的属性有点特殊,模拟出数组的一些特性. 一般来说,如果我们有一个 ...

  9. JavaScript中Array(数组) 对象

    JavaScript中Array 对象 JavaScript中创建数组有两种方式 (一)使用直接量表示法: var arr4 = []; //创建一个空数组var arr5 = [20]; // 创建 ...

  10. JavaScript深入之类数组对象与arguments(转载)

    类数组对象 所谓的类数组对象: 拥有一个 length 属性和若干索引属性的对象 举个例子: var array = ['name', 'age', 'sex']; var arrayLike = { ...

随机推荐

  1. clear伪类使用

    都知道float会脱离文档流  用什么办法撑开父元素呢? 手动在本区块的所有float元素之后加上一个块元素并对其添加clear:both 可以 但是这样还要再去修改html页面  而且多了一个仅仅是 ...

  2. git 代理设置

    git 代理设置: git config --global http.proxy http://proxy.com:8080git config --global https.proxy http:/ ...

  3. linux禁ping和允许ping的方法

    一.系统禁止ping [root@linuxzgf ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 二.系统允许ping [root@li ...

  4. 「操作系统」: Conditional Move Instructions(trap)

    Not all conditional expressions can be compiled using conditional moves. Most significantly, the abs ...

  5. Python 連接 MySQL

    Python 連接 MySQL MySQL 是十分流行的開源資料庫系統,很多網站也是使用 MySQL 作為後台資料儲存,而 Python 要連接 MySQL 可以使用 MySQL 模組.MySQLdb ...

  6. Windbg调试命令详解(2)

    转载注明>>  [作者:张佩][原文:http://blog.csdn.net/blog_index] 2. 符号与源码 符号与源码是调试过程中的重要因素,它们使得枯燥生硬的调试内容更容易 ...

  7. BitNami Redmine Stack

    BitNami Redmine Stack 是打包了 Redmine 的一键安装程序包,包括:Apache, MySQL, Ruby On Rails, and Subversion Redmine ...

  8. PHP缓存主要技术

    1.普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中 ...

  9. 用Verilog实现IIC通讯

    注意,此代码是错误代码,并不能实现想要的结果. 之所以留着,因为里面的enable 是独立开来的思想值得借鉴.就是控制单元和运算单元分开(我也是借鉴别人的实现思想).具体用verilogHDL实现II ...

  10. USB键盘数据解析

    以前用过的一个嵌入式设备使用USB键盘作为输入.当时还研究了一下USB协议,现在都快忘得差不多了.这里整理一下当时找到的关于USB键盘数据方面的资料. 主机与USB键盘建立连接后,定时从键盘获取8字节 ...