JavaScript 12個有用的陣列技巧
目錄
- 陣列去重
- 1、from()疊加new Set()方法
- 2、spread操作符(…)
- 替換陣列中的特定值
- 沒有map()的對映陣列
- 空陣列
- 將陣列轉換為物件
- 用資料填充陣列
- 合併數www.cppcns.com組
- 兩個陣列的交集
- 刪除陣列中的假值
- 獲取陣列中的隨機值
- lastIndexOf()方法
- 將陣列中的所有值相加
陣列是最常見的概念之一,它為我們提供了處理資料的許多可能性,熟悉陣列的一些常用操作是很有必要的。
陣列去重
1、from()疊加new Set()方法
字串或數值型陣列的去重可以直接使用from方法。
var plants = ['Saturn','Earth','Uranus','Mercury','Venus','Mars','Jupiter']; var uniquePlants = Array.from(new Set(plants)); console.log(uniquePlants); // [ 'Saturn','Jupiter' ]
2、spread操作符(…)
擴充套件運算子是ES6的一大創新,還有很多強大的功能。
var plants = ['Saturn','Jupiter']; var uniquePlants = [...new Set(plants)]; console.log(uniquePlants); // [ 'Saturn','Jupiter' ]
替換陣列中的特定值
splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。該方法會改變原始陣列。特別需要注意插入值的位置!
// arrayObject.splice(index,howmany,item1,.....,itemX) var plants = ['Saturn','Jupiter']; var result = plants.splice(2,1,'www.shanzhonglei.com') console.log(plants); // ['Saturn','www.shanzhonglei.com','Jupiter'] console.log(result); // ['Mercury']
沒有map()的對映陣列
我們先介紹一下map方法。map()方法返回一個新陣列,陣列中的元素為原始陣列元素呼叫函式處理後的值,它會按照原始陣列元素順序依次處理元素。注意: map()不會改變原始陣列,也不會對空陣列進行檢測。
下面我們來實現一個沒有map的陣列對映:
// array.map(function(currentValue,index,arr),thisValue) var plants = [ { name: "Saturn" },{ name: "Uranus" },{ name: "Mercury" },{ name: "Venus" },] var plantsName = Array.from(plants,({ name }) => name); console.log(plantsName); // [ 'Saturn','Venus' ]
空陣列
如果要清空一個數組,將陣列的長度設定為0即可,額,這個有點簡單。
var plants = ['Saturn','Jupiter']; plants.length = 0; console.log(plants); // []
將陣列轉換為物件
如果要將陣列轉換為物件,最快的方法莫過於spread運算子(...)。
var plants = ['Saturn','Jupiter']; var plantsObj = {...plants } console.log(plantsObj); // {'0': 'Saturn','1': 'Earth','2': 'Uranus','3': 'Mercury','4': 'Venus','5': 'Earth','6': 'Mars','7': 'Jupiter'}
用資料填充陣列
如果我們需要用一些資料來填充陣列,或者需要一個具有相同值的資料,我們可以用fill()方法。
var plants = new Array(8).fill('8'); console.log(plants); // ['8','8','8']
合併陣列
當然你會想到concat()方法,但是哦,spread操作符(...)也很香的,這也是擴充套件運算子的另一個應用。
var plants1 = ['Saturn','Uranu客棧s','Mercury'];
var plants2 = ['Venus','Jupiter'];
console.log([...plants1,...plants2]); // ['Saturn','Merwww.cppcns.comcury','Jupiter']
兩個陣列的交集
要求兩個陣列的交集,首先確保陣列不重複,然後使用filter()方法和includes()方法。
var plants1 = ['Saturn','Jupiter'];
var plants2 = ['Saturn','Uranus'];
var alonePlants = [...new Set(plants1)].filter(item => plants2.includwww.cppcns.comes(item));
console.log(alonePlants); // [ 'Saturn','Uranus' ]
刪除陣列中的假值
我們時常需要在處理資料的時候要去掉假值。在script中,假值是false,0, " ", null,NaN,undefined。
var plants = ['Saturn',null,undefined,false,"",'Jupiter']; var trueArr = plants.filter(Boolean); console.log(trueArr); // ['Saturn','Jupiter']
獲取陣列中的隨機值
我們可以根據陣列長度獲得一個隨機索引號。
var plants = ['Saturn','Jupiter']; console.log(plants[Math.floor(Math.random() * (plants.length + 1))])
lastIndexOf()方法
lastIndexOf()可以幫助我們查詢元素最後一次出現的索引。
// array.reduce(function(total,currentValue,currentIndex,initialValue) var nums = [1,2,3,4,5]; var sum = nums.reduce((x,y) => x + y); console.log(sum); // 15
將陣列中的所有值相加
reduce()方法接收一個函式作為累加器,陣列中的每個值(從左到右)開始縮減,最終計算為一個值。
// array.reduce(function(total,y) => x + y); console.log(sum); // 15
到此這篇關於JavaScript 12個有用的陣列技巧的文章就介紹到這了,更多相關JavaScript 陣列內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!