一些面试可能会遇到的问题 ---- 实时更新中

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);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值