我使用了以下有效的代码,但在阅读了有关 JS 的内容后(我还很新),我注意到了 3 件事。
在方法的开头使用return
使用
三元
条件(不确定在这种情况下如何使用它)使用
reduce
(对此不确定,但也许可以代替 forEach)
是否可以在下面的代码中使用它?
get: function(document, oData) {
var self = this;
var oInnerHTML;
if (oData) {
var oParsedHTML = this._parseHtml(document);
oInnerHTML = oParsedHTML;
oData.forEach(function(configEntry) {
oInnerHTML = self._routeExtentionTypes(configEntry, oInnerHTML);
});
oInnerHTML = this._convertBackToHtml(oInnerHTML);
} else {
oInnerHTML = document;
}
return oInnerHTML
}
这段代码是做什么的
- getting HtmlString and parse it
- extend it according to the cofigEntry and the original HTML
- when the config entry was done it convert back to HTML
最佳答案
在方法的开头使用return
当您的对象准备好具有所需值时使用返回。尽早返回是一种很好的做法。这样可以执行和评估最少量的代码。
在上面的示例中,“oInnerHTML”变量根据满足特定条件的值准备就绪,因此在这种情况下,您可以在对象/变量准备好值后立即返回它。
使用三元条件
当您根据简单条件为变量赋值或者您正在做出多个结果非常短暂的决策时,三元运算符很常见。例如
x ? y: z
在上面的例子中,三元运算符可以如下使用:(请执行代码并仔细检查)
get: function(document, oData) {
var self = this;
return (oData) ? document : get_oInnerHTML(oData);
}
function get_oInnerHTML (oData){
var oInnerHTML;
oData.forEach(function(configEntry) { oInnerHTML = self._routeExtentionTypes(configEntry, this._parseHtml(document)); });
return oInnerHTML;
}
以上代码在三元条件下使用了一个函数。由于有很多行需要在条件内执行,所以我为它创建了单独的函数并在条件下使用。
使用减少
reduce() 方法对累加器和数组的每个值(从左到右)应用一个函数,以将其缩减为单个值。
[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) { return previousValue + currentValue; });
关于javascript - 删除方法中的冗余代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565172/