javascript经典面试题:字体高亮函数

题目:请你完成 highlight 函数,可以把模版字符串中的插入内容替换掉,并且插入文档以后显示红色。例如:

const yourName = 'ScriptOJ'
const myName = 'Jerry'
document.body.innerHTML = highlight`Hello, ${yourName}. I am ${myName}.`

上面例子的页面显示如下:

0_1498033735172_upload-2abd65b1-1e98-46ba-b46f-df4188a036a5

请你完成 highlight 函数的编写。

答案: css:

.highlight {
  color: red;
}

js:

// 考察的是 Tagged template literals 的使用
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
const highlight = (strings, ...args) => {
  return strings.reduce((str, cur, i) => {
    return `${str}${cur}${args[i] ? `<span class="highlight">${args[i]}</span>` : '' }`
  }, '')
}
THE END