两道Javascript-前端面试题
第一题
请完成一个函数,接受字符串str,返回一个相对应的json对象。(例如str=”aa.bb.cc”,函数返回{“aa”:{“bb”:{“cc”:{}}}} )
function getJson(str) {
let strArr = str.split('.');
let getObj = function(obj, index) {
obj[strArr[index]] = {};
if (index !== strArr.length - 1){
getObj(obj[strArr[index]], ++index);
}
return obj;
};
let obj = getObj({}, 0);
return obj;
}
第二题
假设已知一个函数
function isPass() {
…
return true/false;
}
请完成函数function X() {…}
使得当我在main函数中调用X()时,在控制台打印出这样的一段话
try to run isPass for 1 times, fail, wait for 10 seconds to try again…
try to run isPass for 2 times, fail, wait for 15 seconds to try again…
try to run isPass for 3 times, fail, wait for 20 seconds to try again…
…
try to run isPass for n times, succeed, over!
function x() {
var times = arguments[0] || 1;
if(isPass()) {
console.log(`try to run isPass for ${
times} times, succeed, over!`);
} else {
console.log(`try to run isPass for ${
times} times, fail, wait for ${
10 + times * 5} to try again...`);
setTimeout(() => {
times++;
x(times);
}, (1 * times) * 1000);
}
}
function isPass() {
return true/false;
}
function main() {
x();
}
main();
还没有评论,来说两句吧...