两道Javascript-前端面试题

痛定思痛。 2022-07-12 13:26 270阅读 0赞

第一题

请完成一个函数,接受字符串str,返回一个相对应的json对象。(例如str=”aa.bb.cc”,函数返回{“aa”:{“bb”:{“cc”:{}}}} )

  1. function getJson(str) {
  2. let strArr = str.split('.');
  3. let getObj = function(obj, index) {
  4. obj[strArr[index]] = {};
  5. if (index !== strArr.length - 1){
  6. getObj(obj[strArr[index]], ++index);
  7. }
  8. return obj;
  9. };
  10. let obj = getObj({}, 0);
  11. return obj;
  12. }

第二题

假设已知一个函数
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!

  1. function x() {
  2. var times = arguments[0] || 1;
  3. if(isPass()) {
  4. console.log(`try to run isPass for ${
  5. times} times, succeed, over!`);
  6. } else {
  7. console.log(`try to run isPass for ${
  8. times} times, fail, wait for ${
  9. 10 + times * 5} to try again...`);
  10. setTimeout(() => {
  11. times++;
  12. x(times);
  13. }, (1 * times) * 1000);
  14. }
  15. }
  16. function isPass() {
  17. return true/false;
  18. }
  19. function main() {
  20. x();
  21. }
  22. main();

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读