0
我正在試驗數據的深層對象樹,現在我希望我的代碼現在可以分解了。使用Try Catch或If Else來實現性能的JavaScript
很多時候我必須檢查整個分支是否存在以設置或取消設置值。我使用了很多'if else'條件,我正在考慮使用函數。
例如,設置在一個分支爲假的值,我可以有兩個解決方案,如:
function setFalse(root, /* [names]* */) { ...
// If root exists, call setFalse() with the rest of arguments.
// Else if I only have two arguments : root[arguments[1]] = false ;
// Else return.
... }
或用try-catch代碼:
function setFalse(root, /* [names]* */) {
try {
var l = arguments.length,
branch = root ;
for (var i=1 ; i<l-1 ; i++) // Not taking the last argument.
branch = branch[arguments[i]] ;
branch[arguments[l-1]] = false ; // With last argument.
}
catch(e) {}
}
第一種方法比清潔劑第二,但它使用遞歸,所以它可能會很沉重。 第二種方法有點骯髒(我認爲),但是執行起來可能更輕?
我必須精確地說,我不在乎整個分支是否存在,我只是想讓它在假如存在的情況下放置。
通常我有4分支深層物體,但它可能更多。 您認爲哪種方法最高效?
太好了!謝謝您的回答。我終於離正確的方法不遠了。 – Tot