數組是Javascript最多見的概念之一,它爲咱們提供了處理存儲在其中的數據的許多可能性。數組是Javascript中最基本的主題之一,你可能在編程開始之初就瞭解它,在這篇文章中,我會給你們分享一些你可能不知道可是頗有用的技巧。面試
一、移除數組重複項編程
這是一個很是常見的數組面試問題,如何在數組中提取重複的值,你能夠用new set()達到這個目的,我也願意分享其兩種的方式,一個是.from()方法另外一個是擴展運算符(...)數組
var fruits = [「banana」, 「apple」, 「orange」, 「watermelon」, 「apple」, 「orange」, 「grape」, 「apple」];
var uniqueFruits = Array.from(new Set(fruits));
console.log(uniqueFruits);
var uniqueFruits2 = […new Set(fruits)];
console.log(uniqueFruits2);
複製代碼
二、替換數組中的具體值bash
有時寫代碼的時候,會遇到須要替換數組中的某些具體值,這有一個你之前也許不知道的又好又簡短的方法,咱們能夠用splice(開始位置,須要移除的值,須要添加的值),傳遞這三個參數指定咱們在哪裏修改,咱們須要更改多個少個值,以及新的值。app
var fruits = [「banana」, 「apple」, 「orange」, 「watermelon」, 「apple」, 「orange」, 「grape」, 「apple」];
fruits.splice(0, 2, 「potato」, 「tomato」);
console.log(fruits);
複製代碼
三、沒有.map()的map數組dom
可能每一個人都知道數組的map()方法,可是這有另外一個不一樣的方式用更簡單的代碼實現相同的效果。咱們能夠用from()方法達到這個目的。ui
var friends = [
{ name: ‘John’, age: 22 },
{ name: ‘Peter’, age: 23 },
{ name: ‘Mark’, age: 24 },
{ name: ‘Maria’, age: 22 },
{ name: ‘Monica’, age: 21 },
{ name: ‘Martha’, age: 19 },]
var friendsNames = Array.from(friends, ({name}) => name);
console.log(friendsNames);
複製代碼
四、空數組spa
你是否有一個包含不少元素的數組,可是出於某些緣由須要對其進行清理,而且您不想一個一個地刪除?只需一行代碼便可完成操做。清空一個數組,你只須要設置數組的長度是0,就這樣。code
var fruits = [「banana」, 「apple」, 「orange」, 「watermelon」, 「apple」, 「orange」, 「grape」, 「apple」];
fruits.length = 0;
console.log(fruits);
複製代碼
五、數組轉成對象對象
在某些狀況下,咱們常常須要把數組轉成對象,把數組轉成對象的一個最快的方式就是用熟知的擴展運算符。
var fruits = [「banana」, 「apple」, 「orange」, 「watermelon」];
var fruitsObj = { …fruits };
console.log(fruitsObj);
複製代碼
六、快速建立一個有數據的數組
有時咱們建立一個數組,而且須要用一樣的數據填充,這種狀況下,咱們能夠用fill()方法,簡單又簡潔。
var newArray = new Array(10).fill(「1」);
console.log(newArray);
複製代碼
七、合併數組
你知道怎麼不用concat()方法來合併數組嗎?這有一個簡單的方法用一行代碼就能夠合併多個數組,在這種狀況下,可能你已經意識到擴展運算符很是有用
var fruits = [「apple」, 「banana」, 「orange」];
var meat = [「poultry」, 「beef」, 「fish」];
var vegetables = [「potato」, 「tomato」, 「cucumber」];
var food = […fruits, …meat, …vegetables];
console.log(food);
複製代碼
八、找到兩個數組的交集
這也是在面試中均可能面臨的最廣泛的問題之一,由於它代表了你是否可以使用數組方法以及你的邏輯。找到兩個數組的交集,咱們將用文章前面講到過得方法,爲了確保數組中的值沒有重複的,將使用filter()方法和includes()最後,咱們將獲得兩個數組都存在的值,code以下:
var numOne = [0, 2, 4, 6, 8, 8];
var numTwo = [1, 2, 3, 4, 5, 6];
var duplicatedValues = […new Set(numOne)].filter(item => numTwo.includes(item));
console.log(duplicatedValues);
複製代碼
九、從數組中刪除false
一開始,咱們定義了false,在JavaScript中,fasle值有false,0,null,NaN,undefined,如今咱們如何從數組中移除這些false值,爲了實現這個目的,咱們能夠用filter()方法
var mixedArr = [0, 「blue」, 「」, NaN, 9, true, undefined, 「white」, false];
var trueArr = mixedArr.filter(Boolean);
console.log(trueArr);
複製代碼
十、從數組中獲取隨機值
有時咱們須要從數組中隨機提取值,爲了創造一個簡單的,有效的,最簡短的而且保持代碼乾淨,咱們能夠根據數組的長度獲得一個隨機數,能夠以下:
var colors = [「blue」, 「white」, 「green」, 「navy」, 「pink」, 「purple」, 「orange」, 「yellow」, 「black」, 「brown」];
var randomColor = colors[(Math.floor(Math.random() * (colors.length)))]
複製代碼
十一、倒置數組
當咱們須要倒置數組,不須要經過寫複雜的循環和方法,有一種簡單的,只須要一行代碼的,數組方法已經爲咱們把數組倒置了,讓咱們檢查下:
var colors = [「blue」, 「white」, 「green」, 「navy」, 「pink」, 「purple」, 「orange」, 「yellow」, 「black」, 「brown」];
var reversedColors = colors.reverse();
console.log(reversedColors);
複製代碼
十二、.lastIndexOf()
在JavaScript中,有一個有趣的方法可以容許找到給定元素最後一次出現的下標,例如, 若是咱們的數組中有重複的值,咱們能夠找到他最後一次出現的下標,看下代碼:
var nums = [1, 5, 2, 6, 3, 5, 2, 3, 6, 5, 2, 7];
var lastIndex = nums.lastIndexOf(5);
console.log(lastIndex);
複製代碼
1三、求數組中全部值得和
另外一個在JavaScript面試時常常會被問到的問題。沒有什麼可怕的,用reduce(),一行代碼就能夠解決,說白了就是遞歸。以下:
var nums = [1, 5, 2, 6];var sum = nums.reduce((x, y) => x + y);
console.log(sum);
複製代碼
結論
在本文中,我菜頭爲你們列出了13個,基本涵蓋了面試時數組方面的問題(只適用於高級一下哈),除了面試幫助,還能夠幫助你coding 而且保持代碼簡短乾淨的技巧和竅門,另外,請記住,您可能須要在Javascript中使用許多不一樣的技巧,以進行探索,不只涉及數組,並且涉及不一樣的數據類型。我但願你能喜歡本文中提供的解決方案,而且你能夠用他們提高你的發開效率。