您的位置:首頁>正文

前端面試要求進一步提高,速成的程式師面試10家均未通過!

不去面試, 你永遠也不知道現在的面試題是些啥樣, 仿佛各大公司換著法折騰, 對於面試者來說以往的老套路已經完全不夠用了, 比如友人一個公司的技術總監, 讓他們出了一堆的演算法題來面試前端, 還有的考驗css/javascript的一些最基礎的底層知識問題, 比如, 你能用幾種方法創建物件, 能用幾種方法對陣列去重等一系列的沒有固定答案的題目, 這就要求面試者的基本功很扎實, 對於那些速成javascript, 一上手就學習框架的人群來講, 真是沒有半分面子可講。 但是如果能把一步一個腳印, 把基礎學習扎實,

包括對於原生javascript的學習, 一步步掰碎來學, 那麼這些面試, 也就是很簡單了, 很多人覺得這樣學習會很慢, 但是一份月薪過萬的工作, 再怎麼慢, 也是值得的。 我們既要仰望天空, 更應該腳踏實地, 下面是一個企業的老猿給新人培訓總結的關於javascript Array物件的一份詳解, 希望大家能收藏!

如果有正在學習前端/javascript的夥伴, 不知道怎麼學習, 或者該學些什麼才能找到工作的可以一起來我們的頭條前端群570946165, 一整套前端學習路線及系統學習資料已上傳到群檔!

javascript Array 物件方法

javascript陣列創建與修改

1. 創建

var arr = [];

var arr = new Array()

Array.of(el1[,el2[...]]) //創建一個新陣列實例

Array.from(arrayLike) //將類陣列(類似陣列的物件和可遍歷的物件)轉為真正的陣列。

// ES5的寫法var arr1 = [].slice.call(arrayLike); // ES6的寫法let arr2 = Array.from(arrayLike);

2. 合併

Array.prototype.concat(arr1[,arr2..]) //合併兩個或多個陣列。 不更改現有陣列,

而是返回一個新陣列。

3. 轉化為字串

Array.prototype.join(separator) //以separator(默認為逗號)拼接為字串。

Array.prototype.toString() //把陣列轉換為字串,陣列中的元素之間用逗號分隔。

4. 填充

Array.prototype.fill(value[, start, end]) //用一個固定值填充[start,end)的元素。

判斷陣列

Array.isArray() //判斷傳遞的值是否是一個 Array。

篩選排序遞迴

1. 篩選

Array.prototype.filter()

Array.prototype.map()

2. 排序

Array.prototype.reverse() //將陣列中元素的位置顛倒。

Array.prototype.sort()

3. 遞迴

Array.prototype.reduce()

語法:arr.reduce(callback,[initialValue])

callback(accumulator,currentValue,currentIndex,array)

accumulator 上一次調用回檔返回的值

currentValue 陣列中正在處理的元素

currentIndex 資料中正在處理的元素索引

array 調用 reduce 的陣列

initialValue [可選], 用於第一次調用 callback 的第一個參數。

增刪改查

1. 查找

Array.prototype.some(callback) //執行一次 callback 函數, 直到找到一個使得 callback 返回true。

Array.prototype.every(callback) //陣列的所有元素是否都通過callback 函數。

Array.prototype.find(callback) //在陣列中返回符合callback第一個元素的值。

Array.prototype.findIndex(callback)//返回陣列中滿足callback的第一個元素的索引。 否則返回-1。

Array.prototype.includes(searchElement) //是否包含一個指定的值

2. 增、刪

Array.prototype.pop() //刪除陣列最後一個元素, 並返回該元素的值。

Array.prototype.push() //增加元素到陣列末尾。

Array.prototype.shift() //刪除陣列第一個元素。

Array.prototype.unshift() //增加元素到陣列開頭。

Array.prototype.slice(start,end) //返回[start,end)**淺拷貝**到一個新陣列物件, **原陣列不會被修改**。

Array.prototype.splice() //通過刪除現有元素和/或添加新元素來更改一個陣列的內容, **會直接對陣列進行修改**。

array.splice(start)

array.splice(start, deleteCount)

array.splice(start, deleteCount, item1, item2, ...)

start : 如果超出了陣列的長度, 則從陣列末尾開始添加內容;如果是負值, 則表示從陣列末位元開始的第幾位(從1計數)。

deleteCount : 如果 deleteCount 是 0, 則不移除元素, 這種情況下, 至少應添加一個新元素;如果 deleteCount 大於start 之後的元素的總數, 則從 start 後面的元素都將被刪除(含第 start 位);如果deleteCount被省略, 則其相當於(arr.length - start)。

item1, item2, ... :要添加進陣列的元素

迴圈遍歷

Array.prototype.map(callback)

Array.prototype.forEach(callback)

Array.prototype.entries() //返回一個新的Array Iterator物件, 該物件包含陣列中每個索引的鍵/值對。

Array.prototype.keys() //返回一個新的Array反覆運算器, 它包含陣列中每個索引的鍵。

Array.prototype.values() //返回一個新的 Array Iterator 物件, 該物件包含陣列每個索引的值。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示