Ich habe ein großes String-Array von ~ 6k String-Elemente. Ich weiß Sets arbeiten in meinem Browser und sind in Ordnung, wenn Sie auf kleineren Arrays testen. Wenn ich versuche, das große Array in ein neues Set zu konvertieren, wird nur ein leeres zurückgegeben.Javascript Set nicht von großen String Array Array
Mein Array ist ursprünglich Teil eines verschachtelten, obwohl mehrere Methoden der Eingabe in das Set ausprobiert wurden. Einige davon sind:
var input = Bigger_array[1];
var input = [...Bigger_array[1]];
var dummy = Bigger_array[1];
var input = [...dummy];
Zusätzlich verschiedene Methoden des Satzes zu schaffen haben auch versucht worden:
var s = new Set(input);
var s = new Set();
for (var j = 0; j < input.length; j++) {
s.add(input[i]);
}
alles ohne Erfolg:
set {}
Wie verlangt eine Arbeits Geige für kleinere Arrays:
Bigger_array=[['a','b','c'],['a','b','c']]
var input = [...Bigger_array[1]];
var s = new Set();
for (var j = 0; j < input.length; j++) {
s.add(input[j]);
}
console.log(s);
///the original method
var input =Bigger_array[1]
var s = new Set(input);
console.log(s);
alert('viewing s in console presents correct values of set \n fiddle is being weird')
//etc...
Der Spread-Operator schlägt fehl, wenn Sie ein Array mit sehr großen Größen haben, abhängig von Ihrer aktuellen Sitzung. Verwenden Sie keine Spreads mit Arrays größer als 150K Länge. In Ihrem zweiten Snippet sollten Sie sagen: 's.add (input [j]);' though. – Redu
können Sie eine Geige zeigen, die Ihr Problem zeigt? Wurde der gleiche Code mit kleineren Arrays getestet? – andyroschy
@Redu danke für die Köpfe hoch. Ich benutzte das nur in der Hoffnung, dass es etwas mit der Referenzierung des Arrays zu tun haben könnte (und somit ein neues erstellen würde). – user2589273