Loading

Stanford CS142: Web Applications Week2 Project2: JavaScript Calisthenics

Project整体难度不算太大。

Code1 cs142-make-multi-filter.js

function cs142MakeMultiFilter(originalArray) {
  let currentArray = originalArray;
  function arrayFilter(filterCriteria, callback) {
    if (typeof filterCriteria !== 'function') {
      return currentArray;
    }
    
    currentArray = currentArray.filter(filterCriteria);
    if (typeof callback === 'function') {
      callback.call(originalArray, currentArray);
    }

    return arrayFilter;
  }
  return arrayFilter;
}

Code2cs142-template-processor.js

完成第二个任务最好使用正则表达式,所以如果对正则表达式不熟悉的话,最好先学习一下正则表达式

function Cs142TemplateProcessor(template) {
  this.ret = template;
  this.fillIn = function (dict) {
    let ret = this.ret;
    for (var key of Object.keys(dict)) {
      var re = new RegExp(`\\{\\{${key}\\}\\}`);
      ret = ret.replace(re, dict[key]);
    }

    return ret.replace(/\{\{\w+\}\}/g, "");
  };
}

Code3cs142-test-project2.js

( function() {
  /* 文件里的内容 */
});

Hint中提示了使用匿名函数,那就正好用匿名函数,可以避免定义全局变量污染命名空间。

posted @ 2022-06-22 14:58  Frank_Ou  阅读(536)  评论(0编辑  收藏  举报