美文网首页
三道面试笔试题

三道面试笔试题

作者: daoqing99 | 来源:发表于2020-07-21 23:33 被阅读0次

1.实现一个方法,把传入的多维数组变成以一维素组
比如[1,[2],[3,[4]], [5,[6,[7]]]] 变成 [1,2,3,4,5,6,7]

// 跟深拷贝一样 考察函数的递归调用
 let arr = [1,[2,[3,[4,[5]]]]]
 let newArr = []
 function mulToOneArr(arr){
   for(let i = 0;i<arr.length;i++){
    if(arr[i] instanceof Array){
         mulToOneArr(arr[i])
     } else {
       newArr.push(arr[i])
     }
   }
    return newArr      
}
 let newArr1 = mulToOneArr(arr)
 console.log(newArr1)

2."lkasuohwhlasihilsbnbalsswejbcasl" 找出重复的字母及个数

let str = 'lkasuohwhlasihilsbnbalsswejbcasl'
// let str = 'aabbcccd'

function numStr(str){
  let oldArr = str.split('')
  let newArr = []
  let obj = {}
  for(let i=0;i<oldArr.length;i++){
    console.log(oldArr[i])
    if(newArr.indexOf(oldArr[i]) > -1){
      obj[oldArr[i]]++
    } else {
      newArr.push(oldArr[i])
      obj[oldArr[i]] = 1
    }
  }
  return obj
}

let num = numStr(str)
console.log(num)

3.写一个方法,把如下数组按从小到大排序,接受name参数,按name排序;接受age参数,按age排序;
[{name: 'tom',age: 32},{name: 'white',age: 28},{name: 'jack',age: 12},{name: 'terry',age: 41}]

 function sortArr(arr = [], key = 'age'){
   for(let m = 0;m < arr.length/2;m++){
     for(let i = 0; i < arr.length - 1; i++){
       if(arr[i][key] > arr[i+1][key]){
        [arr[i],arr[i+1]] = [arr[i+1],arr[i]]
       }
     }
   }
   return arr
 }

// let arr = [{name: 'a',age: 32},{name: 'b',age: 28},{name: 'c',age: 12},{name: 'd',age: 41}]

let sort = sortArr(arr,'age')
console.log(sort)

相关文章

网友评论

      本文标题:三道面试笔试题

      本文链接:https://www.haomeiwen.com/subject/yhwgkktx.html