Ich habe zwei Funktionen, die im Grunde die gleichen sind - sie iterieren über einige Array. Der Unterschied ist, was in der Schleife passiert.Wie kann ich den Code optimieren?
func1: function() {
var result = "";
for (var i = 0; i < array1.length; i++) {
result = result + array1[i].field1 + ', ';
}
if (result.length > 0) {
return result.substring(0, result.length - 2);
} else return ""
},
func2: function() {
var result = "";
for (var i = 0; i < array2.length; i++) {
result = result + array2[i].field2 + ', ';
}
if (result.length > 0) {
return result.substring(0, result.length - 2);
} else return ""
},
Was ist die richtige Art zu sagen, machen Sie es nur eine Funktion, oder um beide gemeinsamen Code zu erben? Ich sehe eine Lösung für sie nur eine Funktion zu machen und verschiedene Parameter zur Verfügung stellen:
func: function (array, fieldName) {
var result = "";
for (var i = 0; i < array.length; i++) {
result = result + array[i].[fieldName] + ', ';
}
if (result.length > 0) {
return result.substring(0, result.length - 2);
} else return ""
},
Aber etwas sagt mir, es ist hässlich. Was ist der richtige Weg?
'array [i] [Feldname]' einfach falsch ist; es sollte 'array [i] [fieldName]' sein. Ansonsten ist es in Ordnung. Dafür gibt es Parameter. – Xufox
ich denke, die [code review] (http://codereview.stackexchange.com) ist ein besserer Ort für diese Frage? – kiro112
Benötigen Sie Kompatibilität mit älteren Browsern? –