Ich arbeite an der Implementierung einer Histogrammfunktion für Arrays, um ein Objekt zurückzugeben, das zählt, wie oft ein Element in diesem Array angezeigt wird. Immer, wenn ich diesen Code ausführe, bekomme ich eine Fehlermeldung, die darauf hinweist, dass der "in" -Operator nicht zum Suchen innerhalb des Objekts verwendet werden kann.Was ist der richtige Weg, um den "in" -Operator zu verwenden, um ein Histogramm zu erstellen?
var histogram = function(collection) {
collection.reduce(function(combine, item){
if(item in combine){
combine[item]++;
} else{
combine[item] = 1;
}
}, {});
}
var arr = "racecar".split("");
console.log(hist(arr));
Ich vermute das Problem hier verursacht entweder durch oder reduzieren, aber ich kann nicht herausfinden, was es ist. Irgendwelche Ideen?
Wahrscheinlich möchten Sie [in operator] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in) vermeiden, da es möglicherweise nicht Ihren Erwartungen entspricht. –