真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Javascript中Array擴(kuò)展如何使用

這篇文章將為大家詳細(xì)講解有關(guān)Javascript中Array擴(kuò)展如何使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

監(jiān)利網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),監(jiān)利網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為監(jiān)利上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的監(jiān)利做網(wǎng)站的公司定做!

Javascript中的Array擴(kuò)展,一般都是從對(duì)象本身入手。這里我們將介紹一些Array對(duì)象中的一些東西,比如indexOf是返回元素在數(shù)組的索引,沒有則返回-1等等。

最近看了一下developer.mozilla.org里的東西,發(fā)現(xiàn)它為Array擴(kuò)展添加了不少generic method,趕得上Prototype的熱心程度。

indexOf

返回元素在數(shù)組的索引,沒有則返回-1。與string的indexOf方法差不多。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.indexOf = function(el, start) {       var startstart = start || 0;       for ( var i=0; i < this.length; ++i ) {           if ( this[i] === el ) {               return i;          }       }       return -1;   };  var array = [2, 5, 9];   var index = array.indexOf(2);   // index is 0   index = array.indexOf(7);   // index is -1

lastIndexOf

與string的lastIndexOf方法差不多。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.lastIndexOf = function(el, start) {       var startstart = start || this.length;       if ( start >= this.length ) {           start = this.length;       }      if ( start < 0 ) {            start = this.length + start;       }      for ( var i=start; i >= 0; --i ) {           if ( this[i] === el ) {             return i;         }      }       return -1;   };

forEach

各類庫(kù)中都實(shí)現(xiàn)相似的each方法。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.forEach = function(fn, thisObj) {       var scope = thisObj || window;       for ( var i=0, j=this.length; i < j; ++i ) {           fn.call(scope, this[i], i, this);      }   };  function printElt(element, index, array) {       print("[" + index + "] is " + element); // assumes print is already defined   }   [2, 5, 9].forEach(printElt);   // Prints:   // [0] is 2   // [1] is 5   // [2] is 9

every

如果數(shù)組中的每個(gè)元素都能通過給定的函數(shù)的測(cè)試,則返回true,反之false。換言之給定的函數(shù)也一定要返回true與false

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.every = function(fn, thisObj) {      var scope = thisObj || window;       for ( var i=0, j=this.length; i < j; ++i ) {           if ( !fn.call(scope, this[i], i, this) ) {               return false;           }       }       return true;   };  function isBigEnough(element, index, array) {     return (element >= 10);   }   var passed = [12, 5, 8, 130, 44].every(isBigEnough);   console.log(passed)   // passed is false   passed = [12, 54, 18, 130, 44].every(isBigEnough);   // passed is true   console.log(passed)

some

類似every函數(shù),但只要有一個(gè)通過給定函數(shù)的測(cè)試就返回true。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.some = function(fn, thisObj) {       var scope = thisObj || window;       for ( var i=0, j=this.length; i < j; ++i ) {           if ( fn.call(scope, this[i], i, this) ) {               return true;          }       }       return false;   };  function isBigEnough(element, index, array) {     return (element >= 10);   }   var passed = [2, 5, 8, 1, 4].some(isBigEnough);   // passed is false   passed = [12, 5, 8, 1, 4].some(isBigEnough);   // passed is true

filter

把符合條件的元素放到一個(gè)新數(shù)組中返回。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.filter = function(fn, thisObj) {       var scope = thisObj || window;      var a = [];       for ( var i=0, j=this.length; i < j; ++i ) {          if ( !fn.call(scope, this[i], i, this) ) {               continue;          }           a.push(this[i]);       }      return a;   };  function isBigEnough(element, index, array) {     return (element <= 10);   }   var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);

map

讓數(shù)組中的每一個(gè)元素調(diào)用給定的函數(shù),然后把得到的結(jié)果放到新數(shù)組中返回。。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.map = function(fn, thisObj) {       var scope = thisObj || window;       var a = [];      for ( var i=0, j=this.length; i < j; ++i ) {          a.push(fn.call(scope, this[i], i, this));       }       return a;   };  var numbers = [1, 4, 9];   var roots = numbers.map(Math.sqrt);   // roots is now [1, 2, 3]   // numbers is still [1, 4, 9]

reduce

讓數(shù)組元素依次調(diào)用給定函數(shù),***返回一個(gè)值,換言之給定函數(shù)一定要用返回值。

如果其他瀏覽器沒有實(shí)現(xiàn)此方法,可以用以下代碼實(shí)現(xiàn)兼容:

Array.prototype.reduce = function(fun /*, initial*/)   {     var len = this.length >>> 0;    if (typeof fun != "function")       throw new TypeError();    if (len == 0 && arguments.length == 1)      throw new TypeError();    var i = 0;     if (arguments.length >= 2){       var rv = arguments[1];     } else{      do{        if (i in this){          rv = this[i++];           break;        }       if (++i >= len)           throw new TypeError();      }while (true);     }     for (; i < len; i++){      if (i in this)        rv = fun.call(null, rv, this[i], i, this);     }     return rv;   };  var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; });   // total == 6

關(guān)于Javascript中Array擴(kuò)展如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站題目:Javascript中Array擴(kuò)展如何使用
鏈接地址:http://weahome.cn/article/jhopip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部