一、数组处理

1、数组的创建  
var arrayObj = new Array(); //创建一个数组  
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度  
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值  
要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。  
2、数组的元素的访问  
var testGetArrValue=arrayObj[1]; //获取数组的元素值  
arrayObj[1]= "这是新值"; //给数组元素赋予新的值  
3、数组元素的添加  
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度  
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度  
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。  
4、数组元素的删除  
arrayObj.pop(); //移除最后一个元素并返回该元素值  
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移  
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素  
5、数组的截取和合并

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组  
6、数组的拷贝  
arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向  
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向  
7、数组元素的排序  
arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址  
arrayObj.sort(); //对数组元素排序,返回数组地址  
8、数组元素的字符串化  
arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。  
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

二、数组对象的3个属性  
1、length 属性  
Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。下面是演示改变length属性的例子:  
var arr=[12,23,5,3,25,98,76,54,56,76];  
//定义了一个包含10个数字的数组  
alert(arr.length); //显示数组的长度10

arr.length=12; //增大数组的长度  
alert(arr.length); //显示数组的长度已经变为12    
alert(arr[8]); //显示第9个元素的值,为56  
arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃  
alert(arr[8]); //显示第9个元素已经变为"undefined"  
arr.length=10; //将数组长度恢复为10  
alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"  
由上面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以显式的设置,它也有可能被隐式修改。JavaScript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时,length属性的值将被设置为所使用元素索引的值加1。例如下面的代码:  
var arr=[12,23,5,3,25,98,76,54,56,76];  
alert(arr.length);  
arr[15]=34;  
alert(arr.length);  
代码中同样是先定义了一个包含10个数字的数组,通过alert语句可以看出其长度为10。随后使用了索引为15的元素,将其赋值为15,即arr[15]=34,这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强类型编程的开发人员来说,这是一个很令人惊讶的特性。事实上,使用new Array()形式创建的数组,其初始长度就是为0,正是对其中未定义元素的操作,才使数组的长度发生变化。  
由上面的介绍可以看到,length属性是如此的神奇,利用它可以方便的增加或者减少数组的容量。因此对length属性的深入了解,有助于在开发过程中灵活运用。  
2、prototype 属性  
返回对象类型原型的引用。prototype 属性是 object 共有的。  
objectName.prototype

objectName 参数是object对象的名称。  
说明:用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。  
对于数组对象,以以下例子说明prototype 属性的用途。  
给数组对象添加返回数组中最大元素值的方法。要完成这一点,声明一个函数,将它加入 Array.prototype, 并使用它。  
function array_max( )  {  
var i, max = this[0];  
for (i = 1; i < this.length; i++)  {  
if (max < this[i])  
max = this[i];  }  
return max;  }  
Array.prototype.max = array_max;  
var x = new Array(1, 2, 3, 4, 5, 6);  
var y = x.max( );  
该代码执行后,y 保存数组 x 中的最大值,或说 6。  
3、constructor 属性  
表示创建对象的函数。  
object.constructor //object是对象或函数的名称。

说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。  
例如:  
x = new String("Hi");  
if (x.constructor == String) // 进行处理(条件为真)。  或  
function MyFunc {  
// 函数体。  }  
y = new MyFunc;  
if (y.constructor == MyFunc) // 进行处理(条件为真)。  
对于数组来说:  
y = new Array();

三、jq对数组的封装

  • $.each(object,[callback])

    通用例遍方法,可用于例遍对象和数组。

    不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。

    object:需要例遍的对象或数组。

    callback:每个成员/元素执行的回调函数。

  • $.extend([d],tgt,obj1,[objN])

    用一个或多个其他对象来扩展一个对象,返回被扩展的对象。

    如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。否则的话,副本会与原对象共享结构。 未定义的属性将不会被复制,然而从对象的原型继承的属性将会被复制。

    deep:如果设为true,则递归合并。

    target:待修改对象。

    object1:待合并到第一个对象的对象。

    objectN:待合并到第一个对象的对象。

  • $.grep(array,fn,[invert])

    使用过滤函数过滤数组元素。

    此函数至少传递两个参数:待过滤数组和过滤函数。过滤函数必须返回 true 以保留元素或 false 以删除元素。

    array:待过滤数组。

    callback:此函数将处理数组每个元素。第一个参数为当前元素,第二个参数而元素索引值。此函数应返回一个布尔值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素,i 代表元素索引值。如“a > 0”代表“function(a){ return a > 0; }”。

    invert:如果 "invert" 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当"invert" 为 true,则返回过滤函数中返回 false 的元素集。

  • $.sub()

    可创建一个新的jQuery副本,不影响原有的jQuery对像。

    有两个具体使用jQuery.sub()创建案例。首先是提供完全没有破坏jQuery原有一切的方法,另一个用于帮助做jQuery插件封装和基本命名空间。

    请注意,jQuery.sub()不会做任何特殊的隔离 - 这不是它的意图。所有关于jQuery的sub'd版本的方法将仍然指向原来的jQuery。(绑定和触发仍将通过主jQuery的事件,数据将通过主绑定的元素的jQuery,Ajax的查询和活动将通过主jQuery的运行,等等)。

    请注意,如果你正在寻找使用这个开发插件,应首先认真考虑使用一些类似jQuery UI widget工厂,这两个状态和插件管理子方法。 使用jQuery UI widget的一些例子建立一个插件。

  • $.when(deferreds)

    提供一种方法来执行一个或多个对象的回调函数,延迟对象通常表示异步事件。

    如果单一延迟传递给jQuery.when ,它是通过这个方法和延迟对象附加的其他方法可访问绑定的回调函数返回的,如defered.then 。当延迟得到解决或者拒绝,通常的代码创建了原来的延迟,适当的回调将被调用。

  • $.makearray(obj)

    将类数组对象转换为数组对象。

    类数组对象有 length 属性,其成员索引为 0 至 length - 1。实际中此函数在 jQuery 中将自动使用而无需特意转换。

    obj: 类数组对象。

  • $.map(arr|obj,callback)1.6*

    将一个数组中的元素转换到另一个数组中。

    作为参数的转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,并扩展至原始数组中。

    array:待转换数组。

    callbackArray:为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。函数可返回任何值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素。如“a * a”代表“function(a){ return a * a; }”。

  • $.inarray(val,arr,[from])

    确定第一个参数在数组中的位置,从0开始计数(如果没有找到则返回 -1 )。

    value:用于在数组中查找是否存在

    array:待处理数组。

    fromIndex:用来搜索数组队列,默认值为0。

  • $.toarray()

    把jQuery集合中所有DOM元素恢复成一个数组。

  • $.merge(first,second)

    合并两个数组

    返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素。要去除重复项,请使用$.unique();

  • $.unique(array)  删除数组中重复元素。只处理删除DOM元素数组,而不能处理字符串或者数字数组。
  • $.parseJSON(json)

    接受一个JSON字符串,返回解析后的对象。

    传入一个畸形的JSON字符串会抛出一个异常。比如下面的都是畸形的JSON字符串:

    • {test: 1} ( test 没有包围双引号)
    • {'test': 1} (使用了单引号而不是双引号)

    另外,如果你什么都不传入,或者一个空字符串、null或undefined,parseJSON都会返回 null 。

js与jq对数组的操作的更多相关文章

  1. js对数组的操作函数

    js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手, ...

  2. js中对arry数组的各种操作小结

    最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊,为了在以后的工作中写出最优化的代码,我 ...

  3. js数组的操作及数组与字符串的相互转化

    数组与字符串的相互转化 <script type="text/javascript">var obj="new1abcdefg".replace(/ ...

  4. Js数组的操作push,pop,shift,unshift等方法详细介绍

    js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首 先来讲一下push和pop方法,这两个方法只会对数组从尾 ...

  5. js,jQuery数组常用操作小结

    一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift() ...

  6. js 数组的操作

    js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...

  7. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

  8. js数组的操作 Full

    js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...

  9. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...

随机推荐

  1. java网络编程精解demo1---读取用户控制台的输入的数据并显示

    package test3; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream ...

  2. CGI, FastCGI, WSGI, uWSGI, uwsgi简述

    CGI 通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据.CGI描述了服务器和请求处理程 ...

  3. 各个浏览器显示版本(IE,火狐)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. CMA-ES 算法

    CMA-ES 算法 一.算法介绍 CMA-ES是Covariance Matrix Adaptation Evolutionary Strategies的缩写,中文名称是协方差矩阵自适应进化策略,主要 ...

  5. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  6. JavaScript 秘密花园 学习心得

    目的 记录一下学习心得,便于以后复习,内容是比较基础的...但是很多内容我还是不知道... 对象 对象使用和属性 1.JavaScript 中所有变量都可以当作对象使用,除了两个例外 null和dun ...

  7. Oracle初级函数的使用

    --1.字符函数--UPPER(string|column) 可以将字符转成大写select upper('helloword') from dual;select upper(ename) from ...

  8. Excel—使用条件格式标注今日值班者

    如下图所示值班表: Step1:选中A2:G2,调出条件格式,在条件格式中,使用公式确定单元格. Step2: 在公式栏中填入以下公式: =TEXT(TODAY(),"aaaa") ...

  9. 移动端城市选择JavaScript插件(基于WG的城市选择插件的修改版本)

    周末的时候趁着一次机会,拿WG(博客)开发的城市选择插件改了一个移动端可以直接用的城市选择插件. 原版插件是基于原声JavaScript写的,在此先感谢作者. 我做的只是依照肯德基注册会员的页面的交互 ...

  10. 进程内部异步事件调用组件Async-Event

    项目坐标:https://github.com/cncduLee/async-event async-event 进程内部异步事件调用组件 解决什么问题: 加速服务处理效率.提供进程级别的事件发布和异 ...