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中提示了使用匿名函数,那就正好用匿名函数,可以避免定义全局变量污染命名空间。