经典面试题三道
2020-04-07 本文已影响0人
aE_0ff7
第一题
var li = ''
function fun(list,str){
if(str!=list[0].id){ // 如果不等于第0项的id
li+=[list[0].id]+'=>' // 把当前id和=>添加到li里
fun(list[0].children,str) // 拿到当前这个的children并再次调用此方法
}else{
li += [list[0].id] // 如果是相等就直接添加一项
}
return li
}
console.log(fun(list1, 'ef')) // 'ab'=>'ed'=>'ef'
第二题
var a=['ad','b','ce']
var str = 'adsdbce'
function transform(list,str){
list.map(e =>{ // e拿到每一项
str = str.replace(e,'<em>'+e+'</em>') //如果str匹配e,就改成后面的形式
})
return str
}
console.log(transform(arr, str)) // <em>ad</em>sd<em>b</em><em>ce</em>
题目可能有问题,如果要做成一样就判断一下
function transform(list, str) {
list.map(ele=>{
if (ele.length > 1) {
str = str.replace(ele, '<em>'+ele+'</em>')
}
})
return str
}
console.log(transform(arr, str)) // <em>ad</em>sdb<em>ce</em>