日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES5-15 数组基础、数组方法、数组排序

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES5-15 数组基础、数组方法、数组排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建數組

  • 字面量 var arr = []
  • 構造函數 var arr = new Array()
  • 不使用new var arr = Array()
    所有數組都繼承于Array.prototype,能使用其中的數組方法
    數組是另一種形式的對象,訪問機制相同
  • 數組的empty項打印出來是undefined,empty不是值只是一個空的標識
    • 稀松數組
      最后一個,后若是空值,則不計入(最后一個逗號忽略)
      并非每位都有值
    • 使用構造函數,不能有空值,否則報語法錯誤
    • new Array()的參數用于設置數組長度,或設置數組
    • 數組是對象的另一種形式

    數組方法

    • 數組方法 - 繼承了數組原型上的方法

    push、unshift

    • push、unshift(返回值:執行了方法以后數組長度)

    • push在最后加,unshift在頭部加

    • 可以添加多個

    • 手寫push方法

    Array.prototype.myPush = function () {let arr = this // 誰調用,this就指向誰for (var i = 0; i < arguments.length; i++) {arr[arr.length] = arguments[i]arr.length++ // 長度自增}return arr.length } var arr = [1, 2, 3] console.log(arr.myPush(4, 5, 6)) // 6 console.log(arr) // 123456

    pop、shift

    • 剪切、返回剪切掉的那個值
    • 無參數
    • pop剪切末位、shift剪切首位

    reverse

    • 倒序

    splice

    • arr.splice(開始項的下標,刪除長度,刪除以后在當前指針開始添加數據)

    • 第三個參數可以傳多個值(添加多個值)

    • 用于添加時,理解為在哪個下標添加

    • 返回值空數組

    • 可傳負數,最后一位的index認為是-1,在index前添加

    • 用splice重寫unshift

    • sort return 0

    sort

    • 返回排序后的數組
    • sort是按照ASCII碼排列的(未傳參時)
    • 傳fn,定義排序方式
    • 升序排return負值(a-b),降序排return正值(b-a)
    • 隨機排序
    • 對象

    練習

  • 用splice方法重寫原型上的unshift方法
  • Array.prototype.myUnshift = function () {this.splice(0, 0, ...arguments)return this.length } var arr = [3, 4, 5] console.log(arr.myUnshift(1, 2)) // 5 console.log(arr) // 1 2 3 4 5

    or

    Array.prototype.myUnshift = function () {var fontArr = Array.prototype.slice.call(arguments)return fontArr.concat(this) } var arr = [3, 4, 5] console.log(arr.myUnshift(1, 2)) // 5
  • 按照字節數排列數組[]
  • var arr = ['夜闌人靜初', '響起了', '悠悠的Saxophone'] function computeByte(str) {var byte = str.lengthfor (var i = 0; i < str.length; i++) {let code = str.charCodeAt(i)byte += code > 255 ? 1 : 0}return byte } console.log(arr.sort(function (a, b) {return computeByte(a) - computeByte(b) }))

    總結

    以上是生活随笔為你收集整理的ES5-15 数组基础、数组方法、数组排序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。