想出一个原创一点,不会太难,也不会太简单,考察候选人的平时练习和思维。有一个对象如下:
let obj = {
a:1,
b:{
c: 2
}
}
需要转换成:
<root>
<a>1</a>
<b>
<c>2</c>
</b>
</root>
该怎么实现呢?
function pad(count) {
return '\n' + ''.padStart(count * 2)
}
function transfer(obj, tab = 0) {
if(typeof obj !== 'object') return pad(tab) + obj
let str = ''
for(let k in obj) {
let v = obj[k]
str += pad(tab) + '<' + k + '>'
str += transfer(v, tab + 1)
str += pad(tab) + '</' + k + '>'
}
return str
}
console.log('results: ')
console.log(transfer(obj))