二 有關陣列的面試題

2021-09-06 06:58:50 字數 2851 閱讀 2892

方法一(暴力)

var arr = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];

function deleteitem(arr) }}

return arr

}console.log(deleteitem(arr)) //[ 1, 23, 3, 5, 6, 7, 9, 8 ]

方法二

借助indexof()方法判斷此元素在該陣列中首次出現的位置下標與迴圈的下標是否相等

var ar = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];

function rep2(arr)

}return arr;

}rep2(ar);

console.log(ar); //[ 1, 23, 3, 5, 6, 7, 9, 8 ]

方法三

利用陣列中的filter方法

var arr = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];

let a = arr.filter(function(element, index, self) )

console.log(a) //[ 1, 23, 3, 5, 6, 7, 9, 8 ]

方法四

利用空物件來記錄新陣列中已經儲存過的元素

var arr = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];

function re(arr)

let arr1 =

for (let i = 0; i < arr.length; i++)

}return arr1

}console.log(re(arr)) //[ 1, 23, 3, 5, 6, 7, 9, 8 ]

方法五

借助新陣列 判斷新陣列中是否存在該元素如果不存在則將此元素新增到新陣列中

var arr = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];

function re1(arr)

}return arr1

}console.log(re1(arr)) //[ 1, 23, 3, 5, 6, 7, 9, 8 ]

第一種:利用for迴圈
let str = "abc"

let str1 = ""

for (let i = 0; i < str.length; i++)

console.log(str1) //cba

第二種 :利用陣列的reverse
let str = "abc123"

console.log(str.split("").reverse().join("")) //321cba

let arr = [1, [2, [3], 4], 5]

console.log(arr.tostring().split(",").map(item => number(item))) //[ 1, 2, 3, 4, 5 ]

const arr = [1, [2, [3], 4], 5]

console.log(json.parse(`[$]`)) //[ 1, 2, 3, 4, 5 ]

[1,2,3] => [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
function allrange(arr, path, res) 

arr.foreach((v, idx) => )

}var a = [1, 2, 3, 4]

const b =

allrange(a, , b)

console.log(b)

游標法

const a = [1, 2, 5, 9, 10]

const b = [2, 3, 4, 6, 9, 10]

function finmix(arr1, arr2) else if (arr1[i] > arr2[j]) else

}}console.log(finmix(a, b)) //2

const data = [

[1, 2, 5, 9, 10],

[12, 22, 35, 49, 51],

[61, 62, 75, 79, 81]

]function finindex(arr, target) else if (target < arr[i][j]) else

}return false

}console.log(finindex(data, 81)) //[2,4]

//字面量

let a=[1,2,3]

//建構函式

let arr=new array(1,2,3)

let arr1=new array(3)

//constructor    返回對建立此物件的陣列函式的引用。

//length 設定或返回陣列中元素的數目。(比較常用)

//prototype 使您有能力向物件新增屬性和方法。

let arr = [1, 3]

let arr1 = new array(1, 2, 3)

console.log(arr.constructor) //[function: array]

console.log(arr1.constructor) //[function: array]

javascript 前端 有關陣列的面試題

陣列相關api常用的不多 es5 6 7新增部分,使用時需要注意相容性 也簡單易懂,但組合使用起來會很靈活,出題方式多,向面試者描述也很容易被理解。如果能熟練應用,平時寫 的效率也能提高不少,經驗相對豐富的前端開發不可避免地會經常與資料打交道。總結起來就是很適合做面試題。開始之前先推薦超實用的工具庫...

SVM有關的面試題

svm的原理是什麼?svm是一種二類分類模型。它的基本模型是在特徵空間中尋找間隔最大化的分離超平面的線性分類器。間隔最大是它有別於感知機 1 當訓練樣本線性可分時,通過硬間隔最大化,學習乙個線性分類器,即線性可分支援向量機 2 當訓練資料近似線性可分時,引入鬆弛變數,通過軟間隔最大化,學習乙個線性分...

有關棧的面試題

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序 假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。class solution ret...