Skip to content

jrg interview questions #42

@jirengu

Description

@jirengu

题目1

写一个函数tree,实现如下功能

function tree(list) {
  //todo...
}

let list = [
  {
    code: '1001',
    parentCode: '',
    name: '北京'
  },
  {
    code: '10011',
    parentCode: '1001',
    name: '海淀'
  },
  {
    code: '10012',
    parentCode: '1001',
    name: '大兴'
  },
  {
    code: '100112',
    parentCode: '10011',
    name: '五道口'
  },
  {
    code: '1002',
    parentCode: '',
    name: '上海'
  },
  {
    code: '10022',
    parentCode: '1002',
    name: '徐汇'
  },
  {
    code: '1003',
    parentCode: '',
    name: '武汉'
  }

]


let newList = tree(list)
console.log(newList)

/*
[
  {
    code: '1001',
    parentCode: '',
    name: '北京',
    children: [
      {
        code: '10011',
        parentCode: '1001',
        name: '海淀',
        children: [
          {
            code: '100112',
            parentCode: '10011',
            name: '五道口',
            children: []
          }
        ]
      },
      {
        code: '10012',
        parentCode: '1001',
        name: '大兴',
        children: []
      }
    ]
  },
  {
    code: '1002',
    parentCode: '',
    name: '上海',
    children: [
      {
        code: '10022',
        parentCode: '1002',
        name: '徐汇',
        children: []
      }
    ]
  },
  {
    code: '1003',
    parentCode: '',
    name: '武汉',
    children: []
  }

]

*/

题目2

补充如下代码实现一个简单的jQuery

function $(selector) {
  //todo..
}
$.prototype = {
  init: function(selector) {
    let nodes = document.querySelectorAll(selector)
    nodes.forEach((node, index) => this[index] = node)
    this.length = nodes.length    
  },
  
  addClass: function(cls) {
    // todo...
  }
}
//todo ...

$.get = function(url, data) {
    function done() { 
       //todo... 
    }
    function fail() {
      //todo...
    }
    function always() {
       //todo...
    }
  
    return { done, fail, always }
  }



$('p').addClass('ok')
$.get('http://api.jirengu.com/getWeather.php', { city: '北京' })
  .done(data => console.log(data))
 .fail(()=>console.log('get data error'))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions