【javascript面接筆記試験】1、いくつかの筆記試験問題
3568 ワード
今日はいくつかのjavascriptの面接問題を思い出します.みんなでやってみてください.他の考えがあります.下に書いてください.皆さん、交流してください.
(1)多次元配列を一桁の配列に変換します.例えば、[1,[2,3],[4,5,[6,7]]を[1,2,3,5,6,7]に変換します.
(1)多次元配列を一桁の配列に変換します.例えば、[1,[2,3],[4,5,[6,7]]を[1,2,3,5,6,7]に変換します.
function test(array){
var newArray = [];
for (var i=0,length = array.length - 1; i <= length; i++) {
if(array[i] instanceof Array){//
newArray = newArray.concat(test(array[i]));//
}else{
newArray.push(array[i]);
}
};
return newArray;
}
(2)配列の最大次元を求めて、つまり全部で何層がはまっていますか?function getDim(array){
var dim = [];
for (var i =0,length = array.length - 1; i <= length; i++) {
if(array[i] instanceof Array){
dim[i] = getDim(array[i]) + 1;// 1
}else{
dim[i] = 1;
}
};
return (dim.sort(function(a,b){return a-b})).pop();//
//
//return Math.max.apply(null,dim);
}
(3)文字列の中で最も多い文字と個数を検索しますか? 例えば:sdjksfssscfdd -> 文字数が一番多いのはsです.7回も現れました.これは主にreplace関数を利用して実現されます.普通の方式でもいいです.var str = "sdjksfssscfssdd";
str = str.split("").sort().join("");
var count = 0;
var val;
str.replace(/(\w)\1*/g,function(arg0,arg1){
if(arg0.length > count){
count = arg0.length;
val = arg1;
}
});
console.log(val+" "+count+" ");
これはアルファベットを先に並べて、cdddffjksssssという形にして、繰り返しの一番多い文字を探します.