一些面試可能會遇到的問題 ---- 實時更新中

1>內容居中:    

http://www.qianduan.net/css-to-achieve-the-vertical-center-of-the-five-kinds-of-methods/



2> 任意的一個數組,返回該數組的元素,以及元素出現的個數。

var arrayString = ['1', '1', '2', '2', '2', '3', '3', '3'];

//-- > 1: 2 2: 3 3: 3

回答1:

var result = [{
  name: arrayString[0],
  value: 1
}];
for (var i = 1; i < arrayString.length; i++) {
  var num = arrayString[i];
  var hasNew = 0;


  for (var j = 0; j < result.length; j++) {
    if (result[j].name == num) {
      result[j].value++;
    } else {
      hasNew++;
    }


  };


  if (hasNew == result.length) {
    result.push({
      name: num,
      value: 1
    });
  }
  
  hasNew = 0;
};



回答2:
//---------------- 


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


var result = {};


for(var i in arr){
  var param = "param"+arr[i];
  if(result.hasOwnProperty(param)){
    result[param] += 1;
  }else{
    result[param] = 1;
  }
}


console.log(JSON.stringify(result));


3> 現在有以下數組var array = [12,34,16,23,19,42,31,30,41,50,81];或其他任意兩位數的數字,現在需要你將數組拆分成兩個數組。規則爲:如果兩個數的和大於5,將該數字放在一個集合,如果小於5,放在另外一個集合。例如10: 1 + 0 =1 < 5 放在a集合 45: 4+5=9>5 放在另外一個集合 


var array = [12,34,16,23,19,42,31,30,41,50,81];


var result = [];//<5
var anotherResult = [];//>5
var sum;
var arrayString;
for (var i = 0; i < array.length; i++) {
  sum = 0;
  arrayString = array[i].toString();
  sum = parseInt(arrayString.substring(0,1)) + parseInt(arrayString.substring(1,2));
  if (sum<5) {
    result.push(array[i]);
  }else{
    anotherResult.push(array[i]);
  }
};


console.log(result);
console.log(anotherResult);


4>1+2+3+4+5+6+7+...+n ,不用if,switch 等判斷,也不用for循環,得出最後的值。

  var num = 0;
  var addFunction = function f(valueN){
    num = num+ valueN;
    valueN = valueN-1;
    console.log(num);
    var trueFalseValue = (valueN>0) && true;
    return  trueFalseValue && f(valueN);
  }; 

  addFunction(5);




發佈了53 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章