亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js Array對象的擴展函數代碼

2019-11-20 22:46:28
字體:
來源:轉載
供稿:網友

使用

復制代碼 代碼如下:

<script language=javascript>
var isNumeric = function(x) {
   // returns true if x is numeric and false if it is not.
   var RegExp = /^(-)?(/d*)(/.?)(/d*)$/;
   return String(x).match(RegExp);
}
var myArray = [1,'two',3,'four',5,'six',7,'eight',9,'ten'];
var oddArray=myArray.filter(isNumeric);  // outputs: 1,3,5,7,9
var oddArray=myArray.some(isNumeric);  // outputs: true
var oddArray=myArray.every(isNumeric);  // outputs: false
var printArray =function(x, idx){
   document.writeln('['+idx+'] = '+x);
}
myArray.forEach(printArray);// outputs: [0] = 1 [1] = two [2] = 3 [3] = four [4] = 5
myArray.remove(9);
document.writeln(myArray);

復制代碼 代碼如下:

if (!Array.prototype.every)
{
  Array.prototype.every = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          !fun.call(thisp, this[i], i, this))
        return false;
    }

    return true;
  };
}
if (!Array.prototype.filter)
{
  Array.prototype.filter = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var res = new Array();
    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
      {
        var val = this[i]; // in case fun mutates this
        if (fun.call(thisp, val, i, this))
          res.push(val);
      }
    }

    return res;
  };
}
if (!Array.prototype.forEach)
{
  Array.prototype.forEach = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
        fun.call(thisp, this[i], i, this);
    }
  };
}
if (!Array.prototype.map)
{
  Array.prototype.map = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var res = new Array(len);
    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
        res[i] = fun.call(thisp, this[i], i, this);
    }

    return res;
  };
}
if (!Array.prototype.some)
{
  Array.prototype.some = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          fun.call(thisp, this[i], i, this))
        return true;
    }

    return false;
  };
}
Array.prototype.sortNum = function() {
   return this.sort( function (a,b) { return a-b; } );
}
<!--
var tmp = [5,9,12,18,56,1,10,42,'blue',30, 7,97,53,33,30,35,27,30,'35','Ball', 'bubble'];
var thirty=tmp.find(30);             // Returns 9, 14, 17
var thirtyfive=tmp.find('35');       // Returns 18
var thirtyfive=tmp.find(35);         // Returns 15
var haveBlue=tmp.find('blue');       // Returns 8
var notFound=tmp.find('not there!'); // Returns false
var regexp1=tmp.find(/^b/);          // returns 8,20    (first letter starts with b)
var regexp1=tmp.find(/^b/i);         // returns 8,19,20 (same as above but ignore case)
-->
Array.prototype.find = function(searchStr) {
  var returnArray = false;
  for (i=0; i<this.length; i++) {
    if (typeof(searchStr) == 'function') {
      if (searchStr.test(this[i])) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    } else {
      if (this[i]===searchStr) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    }
  }
  return returnArray;
}
//隨機改變數組的排序
Array.prototype.shuffle = function (){  
    for(var rnd, tmp, i=this.length; i; rnd=parseInt(Math.random()*i), tmp=this[--i], this[i]=this[rnd], this[rnd]=tmp); 
 return this;
}  
<!--var myArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
var yourArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
document.writeln(myArray.compare(yourArray)); // outputs: true;-->
Array.prototype.compare = function(testArr) {
    if (this.length != testArr.length) return false;
    for (var i = 0; i < testArr.length; i++) {
        if (this[i].compare) {
            if (!this[i].compare(testArr[i])) return false;
        }
        if (this[i] !== testArr[i]) return false;
    }
    return true;
}
//去掉數組中重復的值var a = new Array("5","7","7"); a.unique();
Array.prototype.unique = function() {
 var data = this || [];
    var a = {}; //聲明一個對象,javascript的對象可以當哈希表用
    for (var i = 0; i < data.length; i++) {
        a[data[i]] = true;  //設置標記,把數組的值當下標,這樣就可以去掉重復的值
    }
    data.length = 0;

    for (var i in a) { //遍歷對象,把已標記的還原成數組
        this[data.length] = i;
    }
    return data;
}

Array.prototype.addAll = function($array)
{
 if($array == null || $array.length == 0)
  return;

 for(var $i=0; $i<$array.length; $i++)
  this.push($array[$i]);
}

Array.prototype.contains = function($value)
{
 for(var $i=0; $i<this.length; $i++)
 {
  var $element = this[$i];
  if($element == $value)
   return true;
 }

 return false;
}

Array.prototype.indexOf = function($value)
{
 for(var $i=0; $i<this.length; $i++)
 {
  if(this[$i] == $value)
   return $i;
 }

 return -1;
}
if (!Array.prototype.lastIndexOf)
{
  Array.prototype.lastIndexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]);
    if (isNaN(from))
    {
      from = len - 1;
    }
    else
    {
      from = (from < 0)
           ? Math.ceil(from)
           : Math.floor(from);
      if (from < 0)
        from += len;
      else if (from >= len)
        from = len - 1;
    }

    for (; from > -1; from--)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}
Array.prototype.insertAt = function($value, $index)
{
 if($index < 0)
  this.unshift($value);
 else if($index >= this.length)
  this.push($value);
 else
  this.splice($index, 0, $value);
}
/**
* 根據數組的下標來刪除元素
*/ 
Array.prototype.removeByIndex=function($n) {  
    if($n<0){ //如果n<0,則不進行任何操作。 
      return this; 
    }else{ 
        return this.slice(0,$n).concat(this.slice($n+1,this.length)); 
    } 
}
//依賴indexOf
Array.prototype.remove = function($value)
{
 var $index = this.indexOf($value);

 if($index != -1)
  this.splice($index, 1);
}

Array.prototype.removeAll = function()
{
 while(this.length > 0)
  this.pop();
}

Array.prototype.replace = function($oldValue, $newValue)
{
 for(var $i=0; $i<this.length; $i++)
 {
  if(this[$i] == $oldValue)
  {
   this[$i] = $newValue;
   return;
  }
 }
}

Array.prototype.swap = function($a, $b)
{
 if($a == $b)
  return;

 var $tmp = this[$a];
 this[$a] = this[$b];
 this[$b] = $tmp;
}
Array.prototype.max = function() { 
 return Math.max.apply({}, this); 

Array.prototype.min = function() { 
 return Math.min.apply({}, this); 
}
Array.prototype.splice = function(start, delLen, item){
 var len =this.length;
 start = start<0?0:start>len?len:start?start:0;
 delLen=delLen<0?0:delLen>len?len:delLen?delLen:len; 

 var arr =[],res=[];
 var iarr=0,ires=0,i=0;

 for(i=0;i<len;i++){
  if(i<start|| ires>=delLen) arr[iarr++]=this[i];
  else {
   res[ires++]=this[i];
   if(item&&ires==delLen){
    arr[iarr++]=item;
   }
  } 
 }
 if(item&&ires<delLen) arr[iarr]=item;

 for(var i=0;i<arr.length;i++){
  this[i]=arr[i];
 }
 this.length=arr.length;
 return res;
}
Array.prototype.shift = function(){ if(!this) return[];return this.splice(0,1)[0];}

//分開添加,關鍵字shallow copy,如果遇到數組,復制數組中的元素
Array.prototype.concat = function(){
 var i=0;
 while(i<arguments.length){
  if(typeof arguments[i] === 'object'&&typeof arguments[i].splice ==='function' &&!arguments[i].propertyIsEnumerable('length')){
  // NOT SHALLOW COPY BELOW
  // Array.prototype.concat.apply(this,arguments[i++]);
   var j=0;
   while(j<arguments[i].length) this.splice(this.length,0,arguments[i][j++]);
   i++;
  } else{
   this[this.length]=arguments[i++];
  }
 }
 return this;
}

Array.prototype.join = function(separator){
 var i=0,str="";
 while(i<this.length) str+=this[i++]+separator;
 return str;
}

Array.prototype.pop = function() { return this.splice(this.length-1,1)[0];}

Array.prototype.push = function(){
 Array.prototype.splice.apply(this,
  [this.length,0].concat(Array.prototype.slice.apply(arguments))); //這里沒有直接處理參數,而是復制了一下
 return this.length;
}
Array.prototype.reverse = function(){
 for(var i=0;i<this.length/2;i++){
  var temp = this[i];
  this[i]= this[this.length-1-i];
  this[this.length-1-i] = temp;
 }
 return this;
}
Array.prototype.slice = function(start, end){
 var len =this.length;
 start=start<0?start+=len:start?start:0;
 end =end<0?end+=len:end>len?len:end?end:len;

 var i=start;
 var res = [];
 while(i<end){
  res.push(this[i++]);
 }
 return res; 
}
//arr.unshift(ele1,ele2,ele3....)
Array.prototype.unshift =function(){
 Array.prototype.splice.apply(this,[0,0].concat(Array.prototype.slice.apply(this,arguments)));
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产一区二区三区| 亚洲乱码一区av黑人高潮| 欧美性极品xxxx娇小| 91精品国产乱码久久久久久蜜臀| 九九久久国产精品| 色噜噜狠狠狠综合曰曰曰| 美日韩精品免费观看视频| 91亚洲午夜在线| 国产欧美一区二区三区四区| 国内精品久久久| 国产精品亚洲аv天堂网| 久久久最新网址| 欧美专区在线观看| 91国语精品自产拍在线观看性色| 亚洲精品日韩欧美| 欧美性色19p| 日本老师69xxx| 97超碰蝌蚪网人人做人人爽| 日本精品久久久| 国产一区二区激情| 欧美综合国产精品久久丁香| 国产亚洲一区二区在线| 国产精品一区二区三区在线播放| 日韩亚洲第一页| 亚洲欧美国产va在线影院| 欧美激情小视频| 欧洲成人在线视频| 亚洲天堂视频在线观看| 日韩精品一区二区视频| 亚洲色图色老头| 精品国产精品三级精品av网址| 清纯唯美亚洲激情| 成人黄色影片在线| 亚洲欧美在线x视频| 欧美成年人在线观看| 日本精品久久中文字幕佐佐木| 亚洲影院污污.| 久久久免费在线观看| 欧美激情视频免费观看| 亚洲欧美视频在线| 日韩精品www| 久久精品99久久香蕉国产色戒| 国产精品9999| 中文字幕国产精品久久| 国产精品av在线播放| 国产精品99久久久久久久久久久久| 久久99青青精品免费观看| 国产精品综合网站| 国产精品久久久久aaaa九色| 日本国产一区二区三区| 黑人巨大精品欧美一区二区三区| 26uuu久久噜噜噜噜| 国产成人精品优优av| 精品福利樱桃av导航| 日韩电影大全免费观看2023年上| 日韩小视频在线观看| 欧美日韩亚洲一区二| 久热精品视频在线观看一区| 色综合久久88色综合天天看泰| 中文字幕在线看视频国产欧美| 亚洲综合在线做性| 久久精品国产亚洲精品| 国产欧美精品xxxx另类| 亚洲一区二区三| 欧美性高潮在线| 久久久成人av| 国内精品美女av在线播放| 91中文精品字幕在线视频| 中文字幕欧美日韩精品| 欧美精品videos| 精品精品国产国产自在线| 91色视频在线观看| 国语自产偷拍精品视频偷| 欧洲美女免费图片一区| 欧美成人午夜免费视在线看片| 成人激情综合网| 亚洲三级黄色在线观看| 亚洲综合中文字幕68页| 狠狠躁天天躁日日躁欧美| 日韩天堂在线视频| 亚洲欧美另类在线观看| 26uuu亚洲伊人春色| 国产成人久久精品| 91免费看视频.| 高清一区二区三区日本久| 色悠悠国产精品| 亚洲a一级视频| 亚洲精品理论电影| 久久国产精品久久精品| 亚洲一区美女视频在线观看免费| 超碰97人人做人人爱少妇| 国产日韩欧美一二三区| 欧美在线一级视频| 成人免费看片视频| 国产精欧美一区二区三区| 美女啪啪无遮挡免费久久网站| 亚洲男人天堂2023| 亚洲午夜精品久久久久久性色| 日韩大陆毛片av| 国产乱肥老妇国产一区二| 日韩精品中文字幕视频在线| 国产精品一区二区三区免费视频| 久久中文字幕在线| 欧美黄色成人网| 成人激情在线观看| 九九热这里只有精品免费看| 国产精品一区二区av影院萌芽| 亚洲图片欧美日产| 欧美激情一区二区三区成人| 78m国产成人精品视频| 亚洲欧美视频在线| 日韩精品视频在线免费观看| 亚洲人成在线观| 在线性视频日韩欧美| 亚洲视频axxx| 日韩中文字幕久久| 亚洲国产精彩中文乱码av| 亚洲国产成人精品久久久国产成人一区| 久久久女人电视剧免费播放下载| 久久亚洲一区二区三区四区五区高| 亚洲欧洲av一区二区| 欧美中文字幕在线播放| 国产精品视频一| 亚洲少妇激情视频| 中国日韩欧美久久久久久久久| 国产亚洲一区二区精品| 欧美在线视频免费| 国产精品久久久久久久久久久不卡| 国产成人精品999| 日韩av在线播放资源| 久久青草精品视频免费观看| 欧美一级视频免费在线观看| 欧美日韩一区二区精品| 久久久久久久久久久免费| 成人黄色免费网站在线观看| 久久久久国产一区二区三区| 97涩涩爰在线观看亚洲| 国产欧美精品日韩| 欧美成人免费在线视频| 亚洲四色影视在线观看| 久久人人爽人人爽人人片av高清| 91色在线观看| 中文一区二区视频| 成人欧美一区二区三区黑人| 国内精品久久久久| www日韩中文字幕在线看| 亚洲精品日韩欧美| 亚洲欧美中文字幕| 欧美精品videossex性护士| 亚洲第一精品自拍| 精品国产91久久久久久| 亚洲欧洲成视频免费观看| 91久久精品国产91久久| wwwwwwww亚洲| 91成人国产在线观看| 日韩欧美极品在线观看| 日韩av在线免费| 国产偷国产偷亚洲清高网站| 欧美日韩亚洲一区二区| 国产精品视频xxxx| 性日韩欧美在线视频| 精品欧美aⅴ在线网站| 国产午夜精品一区二区三区| 成人免费黄色网|