数组的定义:
今天碰到一个问题:
(this._callback[evn] || (this._callback[evn] = [])).push(callback);
this._callback[evn] undefined-->执行this._callback[evn] = []初始化数组
数组初始化完毕,push()回调函数javascript
var arr = new Array() console.log(arr['item1'])//undefined arr['item1'] = []// 新建一个数组 arr['item1'].push('item2')//在空数组的基础上push("item2") console.log(arr['item1'])//输出["item2"]
constructor 属性返回对建立此对象的数组函数的引用。html
<!DOCTYPE html> <html> <head> <title>html</title> </head> <body> <script type="text/javascript"> var arr = new Array(); if(arr.constructor ==Array){ document.write('This is an array'); } </script> </body> </html>
能够将constructor打印java
<!DOCTYPE html> <html> <head> <title>html</title> </head> <body> <script type="text/javascript"> function staff(name,sex,job){ this.name = name; this.sex = sex; this.job = job; } var bill = new staff('bill yuan','man','ceo'); document.write(bill.constructor) </script> </body> </html>
prototype 能够向对象添加方法和属性数组
<!DOCTYPE html> <html> <head> <title>html</title> <!-- prototype 属性使你有能力向对象添加属性和方法。 --> </head> <body> <script type="text/javascript"> function staff(name,sex,job){ this.name = name; this.sex = sex; this.job = job; } var bill = new staff('bill yuan','man','ceo'); staff.prototype.sallary = null; staff.prototype.doSomething = function(v){ document.write(v) } bill.sallary = 100000; bill.doSomething('say something') document.write(bill.sallary+bill.name) </script> </body> </html>
对象方法 contact,用于链接2个或2个以上的数组,合成一个大数组浏览器
<!DOCTYPE html> <html> <head> <title>html</title> <!-- contact 对象方法,用于链接2个或者以上的数组。 --> </head> <body> <script type="text/javascript"> var arr = new Array('e1','e2','e3'); var arr1 = new Array('n1','n2','n3'); var arr2 = new Array('b1','b2','b3'); //var str = new Array(arr.concat(arr1,arr2)) var str = arr.concat(arr1,arr2) document.write(str) </script> </body> </html>
对象方法 join,用于将数组中的每个元素使用指定的分割符合成一个你想要的字符串。app
<!DOCTYPE html> <html> <head> <title>html</title> <!--join() 方法用于把数组中的全部元素放入一个字符串。元素是经过指定的分隔符进行分隔的。.join(separator)--> <!--返回一个字符串。该字符串是经过把 array中的每一个元素转换为字符串,而后把这些字符串链接起来,在两个元素之间插入 separator(分隔符)字符串而生成的--> </head> <body> <script type="text/javascript"> var arr = new Array('what','is','your','name?'); var str = arr.join(' ') document.write(str) </script> </body> </html>
对象方法 pop();用于删除数组最后一个元素,而且返回该元素值函数
<!DOCTYPE html> <html> <head> <title>html</title> <!-- pop() 方法用于删除并返回数组的最后一个元素。 --> <!-- pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,而且返回它删除的元素的值。若是数组已经为空,则 pop() 不改变数组,并返回 undefined 值。--> </head> <body> <script type="text/javascript"> var arr = new Array('what','is','your','name?','somethingelse'); document.write(arr) document.write('<br>') document.write(arr.pop()) document.write('<br>') document.write(arr) </script> </body> </html>
对象方法.push能够向数组添加多个元素
.unshift 能够从开头添加一个或是多个元素this
<!DOCTYPE html> <html> <head> <title>html</title> <!-- push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。 --> <!-- push() 方法可把它的参数顺序添加到 Array 的尾部。它直接修改 Array,而不是建立一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。 --> <!-- 要想数组的开头添加一个或多个元素,请使用 unshift() 方法。 --> </head> <body> <script type="text/javascript"> var arr = new Array('what','is','your','name?'); document.write(arr+'<br>')//what,is,your,name? document.write(arr.push('do','you','have','time?'))//8 document.write('<br>') document.write(arr+'<br>')//what,is,your,name?,do,you,have,time? document.write(arr.unshift('do','you','have','time?'))//12 document.write('<br>') document.write(arr)//do,you,have,time?,what,is,your,name?,do,you,have,time? </script> </body> </html>
数组对象方法.shift() 用于删除第一个元素,而且返回这个元素。编码
<!DOCTYPE html> <html> <head> <title>html</title> <!--shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。--> </head> <body> <script type="text/javascript"> var arr = new Array('what','is','your','name?'); document.write(arr+'<br>')//what,is,your,name? document.write(arr.shift())//what document.write('<br>') document.write(arr)//is,your,name? </script> </body> </html>
数组对象方法,arr.slice(start,end)因为选取数组元素(含头不含尾)prototype
<!DOCTYPE html> <html> <head> <title>html</title> <!--slice() 方法可从已有的数组中返回选定的元素。截取的字符串含头不含尾--> <!-- start 若是是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 --> <!-- end 可选。规定从何处结束选取。该参数是数组片段结束处的数组下标。若是没有指定该参数,那么切分的数组包含从 start 到数组结束的全部元素。若是这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 --> </head> <body> <script type="text/javascript"> var arr = new Array('what','is','your','name?'); document.write(arr.slice(0,2))//what,is document.write('<br>') document.write(arr+'<br>')//waht,is,your,name? document.write(arr.slice(1,-1))//is,your </script> </body> </html>
array数组对象方法 .sort(sortBy),用于对数组里面的元素进行排序
<!DOCTYPE html> <html> <head> <title>html</title> <!-- sort() 方法用于对数组的元素进行排序。 --> <!-- 若是调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(若有必要),以便进行比较。 若是想按照其余标准进行排序,就须要提供比较函数,该函数要比较两个值,而后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具备两个参数 a 和 b,其返回值以下: 若 a 小于 b,在排序后的数组中 a 应该出如今 b 以前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。 若 a 大于 b,则返回一个大于 0 的值。 --> </head> <body> <script type="text/javascript"> function sToBig(a,b){ return a-b//按照数字从小到大排序 } function bToSmall(a,b){ return b-a//按照数字从大到小排列 } var arr = new Array(1,3,6,7,0,65,34,23,54,18); document.write(arr.sort(sToBig))//0,1,3,6,7,18,23,34,54,65 document.write('<br>') document.write(arr.sort(bToSmall))//65,54,34,23,18,7,6,3,1,0 var arr2 = new Array('car','doctor','zoo','tool','apple') document.write('<br>') document.write(arr2.sort())//apple,car,doctor,tool,zoo </script> </body> </html>
数组对象方法 splice(index,howmany,item) 因为修改数值元素,增删替换元素
<!DOCTYPE html> <html> <head> <title>html</title> <!-- arr.splice(index,howmany,item) --> <!-- index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。插入数据通常是插在前面 --> <!-- how many 必需。要删除的项目数量。若是设置为 0,则不会删除项目。 --> <!-- item 可选。向数组添加的新项目。--> </head> <body> <script type="text/javascript"> var arr = new Array("{'1':'m','2':'n'}","{'1':'x','2':'y'}","{'1':'a','2':'b'}","{'1':'c','2':'d'}","{'1':'w','2':'z'}","{'1':'d','2':'t'}"); document.write(arr.splice(2,0,"{'1':'mike','2':'hh'}")) document.write('<br>') document.write(arr)//{'1':'m','2':'n'},{'1':'x','2':'y'},{'1':'mike','2':'hh'},{'1':'a','2':'b'},{'1':'c','2':'d'},{'1':'w','2':'z'},{'1':'d','2':'t'} </script> </body> </html>
对象方法,toSource因为打印输出对象的源代码
<!DOCTYPE html> <html> <head> <title>html</title> <!-- toSource() 方法表示对象的源代码。该原始值由 Array 对象派生的全部对象继承。toSource() 方法一般由 JavaScript 在后台自动调用,并不显式地出如今代码中。 --> <!-- 只有 Gecko 核心的浏览器(好比 Firefox)支持该方法,也就是说 IE、Safari、Chrome、Opera 等浏览器均不支持该方法。 --> </head> <body> <script type="text/javascript"> function Staff(Name,Gender,job){ this.Name = Name; this.Gender = Gender; this.job = job; } var mk = new Staff('mike','male','staff') document.write(mk.toSource())//({Name:"mike", Gender:"male", job:"staff"}) </script> </body> </html>
toString对象方法,用于将数组转换成字符串
<!DOCTYPE html> <html> <head> <title>html</title> <!-- toString() 方法可把数组转换为字符串,并返回结果(数组中的元素之间用逗号分隔。)。返回值与没有参数的 join() 方法返回的字符串相同。 --> </head> <body> <script type="text/javascript"> var arr = new Array('item1','item2','item3') document.write(arr.toString()) </script> </body> </html>
valueOf 返回数组对象原始值
<html> <!-- valueOf() 方法返回 Array 对象的原始值。该原始值由 Array 对象派生的全部对象继承。valueOf() 方法一般由 JavaScript 在后台自动调用,并不显式地出如今代码中。 --> <body> <script type="text/javascript"> var arr = new Array('item1','item2','item3') document.write(arr.valueOf())//item1,item2,item3 </script> </body> </html>
arr.concat(arr1, arr2) 不改变原来数组的基础上 链接2个数组 变成一个数组