js數組的各類方法

首先由一個朋友提的問題開始javascript

var a = [].push(233)
console.log(a)

結果是 1;一開始我也搞錯了,覺得返回的是新數組,而後去查了下資料,纔沒發現返回的是新數組的長度,也許這就是feature吧html

那就來複習下數組的方法和細節吧java

Array 對象方法
方法    描述
concat()    鏈接兩個或更多的數組,並返回結果。
join()    把數組的全部元素放入一個字符串。元素經過指定的分隔符進行分隔。
pop()    刪除並返回數組的最後一個元素
push()    向數組的末尾添加一個或更多元素,並返回新的長度。
reverse()    顛倒數組中元素的順序。
shift()    刪除並返回數組的第一個元素
slice()    從某個已有的數組返回選定的元素
sort()    對數組的元素進行排序
splice()    刪除元素,並向數組添加新元素。
toSource()    返回該對象的源代碼。
toString()    把數組轉換爲字符串,並返回結果。
toLocaleString()    把數組轉換爲本地數組,並返回結果。
unshift()    向數組的開頭添加一個或更多元素,並返回新的長度。
valueOf()    返回數組對象的原始值

注意數組

  1. push和unshift都是返回新長度
  2. pop和shift是返回的刪除的那個元素
  3. slice(start,end)方法並不會修改數組,而是返回一個子數組,start 到 end(不包括該元素)是開始和結束的角標,不包含結束的那個
  4. splice會修改原數組,第二個參數是要刪除的數量,後面的參數是要添加的元素
  5. toLocaleString與toString的區別,
  6. 數組filter與find的區別,filter是找到全部符合要求的,find是找到第一個符合要求的,用他們找到元素可是拿不到下標,那就只能循環一次把下標當作屬性設置進去;如今發現能夠用findIndex來找指定屬性的下標,仍是多看看mozilla的array文檔還有什麼好用的方法吧
var array = [
    {
      "name": "aa",
      "bianma": "11"
    },
    {
      "name": "bb",
      "bianma": "12"
    }
 ]
array.findIndex(function(item){return item.name=="aa"})

參考:

JavaScript Array 對象
ES6 操做數組 方法 區別 map filter reduce findapp


JavaScript學習筆記:取數組中最大值和最小值函數

對於純數字數組,可使用JavaScript中的內置函數Math.max()和Math.min()方法。著做權歸做者全部。

最簡潔的方法是 基於ES2015的方法來實現此功能,使用展開運算符學習

var numbers = [1, 2, 3, 4]; 
Math.max(...numbers) // 4 
Math.min(...numbers) //

再就是this

Array.prototype.max = function () { return Math.max.apply({},this); }
Array.prototype.min = function () { return Math.min.apply({},this); } 
var arr = [1,45,23,3,6,2,7,234,56]; 
arr.max(); // 234 
arr.min(); // 1

循環刪除數組元素的幾種姿式.net

用的是for循環和splice以後i--實現;我就用IIFE來防止i污染全局,記得在(function(){})()前面加;、~、!等prototype


js把1-100的數存入數組

最短的應該是這個了 Array.from(new Array(100).keys())

Array.from() 方法從一個相似數組或可迭代對象中建立一個新的數組實例。

阮一峯--數組

  1. 擴展運算符(spread)是三個點(...)。它比如 rest 參數的逆運算,將一個數組轉爲用逗號分隔的參數序列
  2. 注意,擴展運算符若是放在括號中,JavaScript 引擎就會認爲這是函數調用,不然就會報錯。
(...[1,2])
// Uncaught SyntaxError: Unexpected number
相關文章
相關標籤/搜索