# 1일차 | 그것을 해결하는 방법?

4965 단어 javascript

문제




var greeting = 'My name is ${name}, age ${age}, I am a ${job.jobLevel} ${job.jobName}.';
var employee = {
  name: 'XiaoMing',
  age: 11,
  job: {
    jobName: 'designer',
    jobLevel: 'senior'
  }
}

var result = greeting.render(employee);
console.log(result); // My name is XiaoMing, age 11, I am a senior designer.


해결책



이것이 내 해결책입니다.

// my solution
String.prototype.render = function (options) {
  return this.replace(/(?:\$\{)([\.\w]+)(?:\})/g, (match, $1) => {
    if ($1.includes('.')) {
      var p = $1.split('.');
      return p.reduce((p, n) => p[n], options);
    }
    return options[$1];
  })
}


그리고 다른 하나:

String.prototype.render = function (options) {
    with(options) {
        return eval('`' + this + '`')
    }
}


팁:



이것은 나의 첫 번째 기사이므로 친절하게 대하십시오.
개선할 수 있는 부분이 있으면 댓글로 알려주세요.
이 기사가 마음에 드셨다면 댓글로 저에게 동기를 부여해 주세요.

읽어주셔서 감사합니다 ❤️ !

좋은 웹페이지 즐겨찾기