js前端面试题(每日两道3)

1.类名操作(原生js操作name的增删查)

完成几个 DOM 元素类名操作的工具方法:

addClass(dom, name):给 dom 元素添加类名 name

removeClass(dom, name):把 dom 元素的类名 name 删除

hasClass(dom, name):判断 dom 元素是否有类名 name

答案:

let dom=document.getElementById('dom')

const addClass = (dom, name) => {

  dom.classList.add(name)

}

const removeClass = (dom, name) => {

  dom.classList.remove(name)

}

const hasClass = (dom, name) => {

  return dom.classList.contains(name)

}

addClass(dom,'domname')

2.按下标插入

现在有一个数组存放字符串数据:

['item1','item2','item3','item4','item5']

有另外一个数组存放一组对象:

[  {content:'section1',index:0},  {content:'section2',index:2}]

它每个对象表示的是会往原来的数组的 index 坐标插入 content 数据(index 不会重复):

    0        1        2        3        4

item1  itme2  item3  item4  item5   

        ^          ^

section1   section2   

最后结果是:['section1','item1','item2','section2','item3','item4','item5']

请你完成 injectSections 函数,可以达到上述的功能:

injectSections(  ['item1','item2','item3','item4','item5'],  [    {content:'section1',index:0},    {content:'section2',index:2}  ])

// => ['section1', 'item1', 'item2', 'section2', 'item3', 'item4', 'item5']

答案:

const injectSections = (items, sections) => {

    for(let k of sections) {

        items[k.index] = [k.content, items[k.index]];

    }

    return [].concat(...items);

}

你可能感兴趣的:(js前端面试题(每日两道3))