前端面試演算法題彙總(持續更新 )

2021-09-16 18:46:52 字數 4024 閱讀 1082

1.判斷一段字串是否為回文?

回文是指把相同的詞彙或句子,在下文中調換位置或顛倒過來,產生首尾回環的情趣,叫做回文,也叫回環。比如 abba,redder…

1.字串轉陣列;2.用reverse()函式顛倒;3.使用join(』』)拼接成字串

function reversefn( str )
2.陣列去重

1.直接雙重遍歷

var arr = [1,2,3,3,4,3,5,3,7,5];

function removerepetition(arr) }}

return arr;

}

2.用indexof()方法

var arr = [1,2,3,3,4,3,5,3,7,5];

var arr1 = ;

function removerepetition(arr)

} return arr1;

}

3.用fifter方法

var r = arr.filter(function(element,index,self));

console.log(r);

4.使用es6的set

const removeduplicateitems = arr => [...new set(arr)];

removeduplicateitems([42, 'foo', 42, 'foo', true, true]);

3.物件去重

var arr = [, , ,,];

var result = ;

var obj = {};

for(var i =0; i4.統計乙個字串出現最多的字母

var str = "aaabbbbccc";

function findmaxduplicatechar(str)

let charobj = {};

for(let i=0;i= maxvalue)

} return maxchar;

}findmaxduplicatechar(str)

5.排序演算法

function bubblesort(arr) }}

return arr;

}

6.判斷js中的資料型別方法

js中共有七種資料型別 es6新增symbo,其中除去 undefined; null ; 0 ; nan; 』 ';為false 其他都為 true

1)typeof 方法

var obj = 

var arr = ['a','b','c']

var str = 'hello'

var bool = true

var num = 1

var n = null

var fn = function(n)

console.log(typeof obj) // object

console.log(typeof arr) // object

console.log(typeof str) // string

console.log(typeof bool) // boolean

console.log(typeof num) // number

console.log(typeof n) // object

console.log(typeof fn) // function

由上可知,typeof方法 不能區分 array 和 object

2) instanceof

var obj = 

var arr = ['a','b','c']

var str = 'hello'

var bool = true

var num = 1

var n = null

var fn = function(n)

console.log(obj instanceof object) // true

console.log(arr instanceof array) // true

console.log(str instanceof string) // false

console.log(bool instanceof boolean) // false

console.log(num instanceof number) // false

console.log(n instanceof object) // false

console.log(fn instanceof function) // true

由上可知,instanceof 方法只能判斷 object 和 array 原始資料型別的值無法判斷

此方法也不能很好地區分array和object

var arr = [1,2,3,4];

arr.instanceof object

此結果也為true

3) constructor 方法

var obj = 

var arr = ['a','b','c']

var str = 'hello'

var bool = true

var num = 1

var n = null

var fn = function(n)

console.log(obj.constructor == object) // true

console.log(arr.constructor == array) // true

console.log(str.constructor == string) // true

console.log(bool.constructor == boolean) // true

console.log(num.constructor == number) // true

console.log(fn.constructor == function) // true

4) tostring() 方法
var obj = 

var arr = ['a','b','c']

var str = 'hello'

var bool = true

var num = 1

var n = null

var fn = function(n)

console.log(object.prototype.tostring.call(obj)) // [object object]

console.log(object.prototype.tostring.call(arr)) // [object array]

console.log(object.prototype.tostring.call(str)) // [object string]

console.log(object.prototype.tostring.call(bool)) // [object boolean]

console.log(object.prototype.tostring.call(num)) // [object number]

console.log(object.prototype.tostring.call(n)) // [object null]

console.log(object.prototype.tostring.call(fn)) // [object function]

推薦使用 tostring() 方法!

前端面試演算法

演算法一般考得不難,不過基本每一次面試都會考到,常考的演算法有 排序演算法 詳見排序演算法解析 字串中找出最長最多重複的子串 js實現 字串中最長最多重複的子串 動態規劃,參見揹包問題 js實現動態規劃例項 層次遍歷二叉樹 遍歷二叉樹方法 加油站問題 貪心演算法 js實現加油貪心演算法 二分法 js...

頭條前端面試題彙總,會持續更新

頭條前端面試題彙總,會持續更新 今日頭條的面試業界最難,為準備去頭條面試的小夥伴收集了最近一段時間今日頭條的面試題,祝大家面試成功,新題目及答案會持續更新 下面是為各位相入職今日頭條的小夥伴收錄的頭條前端面試題,拿走。頭條前端面試題 一 頭條前端面試題 二 今日頭條前端面試以及題解 今日頭條一面筆試...

前端面試題總結 持續更新

共同點 都是儲存在瀏覽器端,且同源的。區別 function fn fn.prototype c function var myfn new fn 例項物件 myfn.b myfn.c 依次列印的就是 0 30這裡運用的知識點就是new的作用 建立乙個新物件 將建構函式的作用域賦給新物件 因此 th...