javascript Array 进修笔记

数组的定义:
本日遇到一个题目:
(this._callback[evn] || (this._callback[evn] = [])).push(callback);
this._callback[evn] undefined–>实行this._callback[evn] = []初始化数组
数组初始化终了,push()回调函数

   var arr = new Array()
   console.log(arr['item1'])//undefined
    arr['item1'] = []// 新建一个数组
    arr['item1'].push('item2')//在空数组的基础上push("item2")
    console.log(arr['item1'])//输出["item2"]

constructor 属性返回对建立此对象的数组函数的援用。

 <!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打印

 <!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,用于将数组中的每一个元素运用指定的支解符合成一个你想要的字符串。

 <!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 能够从开首增加一个或是多个元素

 <!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)因为拔取数组元素(含头不含尾)

 <!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个数组 变成一个数组

    原文作者:MichaelDuan
    原文地址: https://segmentfault.com/a/1190000003728104
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞