最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS數(shù)組方法shift()、unshift()用法實(shí)例分析

 更新時(shí)間:2020年01月18日 10:55:51   作者:林飛的夢囈  
這篇文章主要介紹了JS數(shù)組方法shift()、unshift()用法,結(jié)合實(shí)例形式分析了JavaScript數(shù)組shift()與unshift()方法功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JS數(shù)組方法shift()、unshift()用法。分享給大家供大家參考,具體如下:

shift()方法

1. 定義:從數(shù)組中刪除第一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長度。
2. 語法: arr.shift()
3. 參數(shù):/
4. 返回值:從數(shù)組中刪除的元素(當(dāng)數(shù)組為空時(shí)返回undefined)。

代碼如下:

方法一:

var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; 
var arr2 = [];
Array.prototype.copyShift = function() {
  var result = [],
    newArr = [];
  result = this[0];
  for(var i = 1; i < this.length; i++) {// 將數(shù)組的第二個(gè)至最后一項(xiàng)的值賦值給newArr
    newArr[newArr.length] = this[i];
  }
  for(var i = 0; i < newArr.length; i++) { //newArr賦值給原數(shù)組
    this[i] = newArr[i];
  }
  this.length = newArr.length;
  return result;
};
console.log(arr1.copyShift());  // 1
console.log(arr1); // [2, 3, 4, 'A', 'B']
console.log(arr2.copyShift()); // undefined
console.log(arr2); // []

運(yùn)行結(jié)果:

方法二:將上述代碼修改為如下:(去掉中間數(shù)組newArr,直接在原數(shù)組上操作)

var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; 
var arr2 = [];
Array.prototype.copyShift = function() {
  var result = [];
  result = this[0];
/* 
  for(var i = 1; i < this.length; i++) {// 將數(shù)組的第二個(gè)至最后一項(xiàng)的值賦值給newArr
    newArr[newArr.length] = this[i];
  }
  for(var i = 0; i < newArr.length; i++) { //newArr賦值給原數(shù)組
    this[i] = newArr[i];
  }
  this.length = newArr.length;
 */
  // 將數(shù)組的后一項(xiàng)賦值給前一項(xiàng)
  for(var i = 0; i < this.length; i++) {
    this[i] = this[i + 1];
  }
  if(this.length > 1) {//去掉數(shù)組最后一項(xiàng)
    this.length = this.length - 1;
  }
  return result;
};
console.log(arr1.copyShift());  // 1
console.log(arr1); // [2, 3, 4, 'A', 'B']
console.log(arr2.copyShift()); // undefined
console.log(arr2); // []

運(yùn)行結(jié)果:

unshift()方法

1. 定義:將一個(gè)或多個(gè)元素添加到數(shù)組的開頭,并返回新數(shù)組的長度。
2. 語法:arr.unshift(element1, ..., elementN)
3. 參數(shù):數(shù)組前端添加任意個(gè)項(xiàng)
4. 返回值:當(dāng)一個(gè)對象調(diào)用該方法時(shí),返回其 length 屬性值。

代碼如下:

方法一:

var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; 
var arr2 = [1, 2, 3, 4];
Array.prototype.copyUnshift = function() {
  var newArr = [],
    argLen = arguments.length,
    len = argLen + this.length;
  for(var i = 0; i < len; i++) {
/* 
    if(i < argLen) {
      newArr[i] = arguments[i];
    }
    else {
      newArr[i] = this[i - argLen];
    }
 */
    // 上述代碼也可寫為:
    newArr[i] = (i < argLen) ? arguments[i] : this[i - argLen];
  }
  for(var i = 0; i < len; i++) {
    this[i] = newArr[i];
  }
  return len;
};
console.log(arr1.copyUnshift('XXX', 'YYY', 'ZZZ'));  // 10
console.log(arr1); // ['XXX', 'YYY', 'ZZZ', 1, 2, 3, 4, 'A', 'B']
console.log(arr2.copyUnshift()); // 4
console.log(arr2); // [1, 2, 3, 4]

運(yùn)行結(jié)果:

//同方法一一樣,只不過是for循環(huán)以遞減的形式
var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; 
var arr2 = [1, 2, 3, 4];
Array.prototype.copyUnshift = function() {
  var newArr = [],
    argLen = arguments.length,
    len = argLen + this.length;
  //同方法一一樣,只不過是for循環(huán)以遞減的形式
  for(var i = len - 1; i >= 0; i--) {
/*     if(i < argLen) {
      newArr[i] = arguments[i];
    }
    else {
      newArr[i] = this[i - argLen];
    } */
    // 上述代碼也可寫為:
    newArr[i] = (i < argLen) ? arguments[i] : this[i - argLen];
  }
  for(var i = 0; i < len; i++) {
    this[i] = newArr[i];
  }
  return len;
};

接上遞減形式的for循環(huán),進(jìn)一步可修改為:

方法二: 直接修改原數(shù)組,不借助中間數(shù)組

var arr1 = [1, 2, 3, 4, 'A', 'B', 'C']; 
var arr2 = [1, 2, 3, 4];
Array.prototype.copyUnshift = function() {
  var argLen = arguments.length,
    len = argLen + this.length;
  for(var i = len - 1; i >= 0; i--) {
/*     if(i > argLen - 1) {
      this[i] = this[i - argLen];
    }
    else {
      this[i] = arguments[i];
    }
 */
    this[i] = (i > argLen - 1) ? this[i - argLen] : arguments[i]; 
  }
  return len;
};
console.log(arr1.copyUnshift('XXX', 'YYY', 'ZZZ'));  // 10
console.log(arr1); // ['XXX', 'YYY', 'ZZZ', 1, 2, 3, 4, 'A', 'B']
console.log(arr2.copyUnshift()); // 4
console.log(arr2); // [1, 2, 3, 4]

運(yùn)行結(jié)果:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《javascript面向?qū)ο笕腴T教程》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Function.prototype.call.apply結(jié)合用法分析示例

    Function.prototype.call.apply結(jié)合用法分析示例

    昨天在網(wǎng)上看到一個(gè)很有意思的js面試題:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a); 分析步驟如下,感興趣的朋友可以參考下哈
    2013-07-07
  • JavaScript如何從listbox里同時(shí)刪除多個(gè)項(xiàng)目

    JavaScript如何從listbox里同時(shí)刪除多個(gè)項(xiàng)目

    要從列表框同時(shí)刪除多個(gè)項(xiàng)目只能從下向上刪除,這樣就不會出現(xiàn)索引號亂變的問題了,下面有個(gè)不錯(cuò)的示例,大家可以感受下
    2013-10-10
  • js實(shí)現(xiàn)隨機(jī)數(shù)字字母驗(yàn)證碼

    js實(shí)現(xiàn)隨機(jī)數(shù)字字母驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了js隨機(jī)驗(yàn)證碼的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 巧用canvas

    巧用canvas

    作為一項(xiàng)有意思的新技術(shù),canvas給我們帶來了對網(wǎng)頁繪圖和網(wǎng)頁動畫的新革命。本文簡單介紹下canvas實(shí)用的功能,下面跟著小編一起來看下吧
    2017-01-01
  • JS實(shí)現(xiàn)六邊形3D拖拽翻轉(zhuǎn)效果的方法

    JS實(shí)現(xiàn)六邊形3D拖拽翻轉(zhuǎn)效果的方法

    這篇文章給大家分享一個(gè)利用javascript實(shí)現(xiàn)3D六邊形拖拽翻轉(zhuǎn)的效果實(shí)例,實(shí)現(xiàn)后的效果很贊,對大家的學(xué)習(xí)Javascript具有一定的參考借鑒價(jià)值,有需要的朋友們一起去來看看吧。
    2016-09-09
  • 微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動

    微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)菜單左右聯(lián)動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • js制作簡易年歷完整實(shí)例

    js制作簡易年歷完整實(shí)例

    這篇文章主要介紹了js制作簡易年歷的方法,包括實(shí)現(xiàn)的思路以及js、css與html各個(gè)部分的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-01-01
  • BootStrap中的Fontawesome 圖標(biāo)

    BootStrap中的Fontawesome 圖標(biāo)

    這篇文章主要介紹了BootStrap中Fontawesome 圖標(biāo)的相關(guān)知識,需要的朋友可以參考下
    2017-05-05
  • Bootstrap字體圖標(biāo)無法正常顯示的解決方法

    Bootstrap字體圖標(biāo)無法正常顯示的解決方法

    這篇文章主要為大家詳細(xì)介紹了Bootstrap字體圖標(biāo)無法正常顯示的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • JavaScript中變量提升機(jī)制示例詳解

    JavaScript中變量提升機(jī)制示例詳解

    這篇文章主要給大家介紹了關(guān)于JavaScript中變量提升機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

双辽市| 龙江县| 吉隆县| 庆城县| 铁力市| 西宁市| 理塘县| 文昌市| 南城县| 赤城县| 石棉县| 阳山县| 抚宁县| 广德县| 凤庆县| 武陟县| 景谷| 扶余县| 石门县| 棋牌| 霍林郭勒市| 榆中县| 溧阳市| 萝北县| 德州市| 景德镇市| 昭通市| 营山县| 聂荣县| 苏尼特右旗| 宁海县| 柘城县| 政和县| 阿坝| 化州市| 揭西县| 富蕴县| 平昌县| 柘荣县| 通州区| 扶绥县|