Ich versuche, mehrere Arrays zu einem zu reduzieren und doppelte Elemente im Array für eine Übung von FCC zu entfernen.Warum verhält sich splice() seltsam?
Konkret zeigt die Spleißmethode eine Sache in der Konsole, aber verhält sich anders. Kann mir jemand sagen, warum splice() nicht die Duplikate löscht, die ich mit der verschachtelten Schleife identifiziert habe?
function uniteUnique(arr) {
var arr1 = arguments;
newArr= [];
for(var i=0; i<arr1.length; i++){
for(var l=0; l<arr1[i].length; l++){
newArr.push(arr1[i][l]);
}
}
console.log(newArr);
for(var t=0; t<newArr.length; t++){
for(var p=0; p<newArr.length; p++){
if(newArr[t]===newArr[p+1]){
console.log("without splice ", newArr[p+1]);
console.log("with splice ", newArr.splice(newArr[p+1],1))
newArr.splice(newArr[p+1],1);
}
}
}
return newArr;
}
console.log(uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]));
Ausgabe [4,1]. Aber ausgeben sollte [1,3,2,5,4]
erste Iteration Log: ohne Spleiß 1 mit splice [3]
Zweitens: ohne Spleiß 1 mit Spleiß [2]
Drittens: ohne Spleiß 2 mit splice [4]
Viertens: ohne splice 1 mit splice [2]
Wie ist 'splice' _„weird'_ in der Konsole verhält sich hier? Du bist keine Aussage/Ausdruck in Bezug auf sie abgesehen von dem Endergebnis. – Pineda
@Pineda \t \t console.log (Anmeldung“ohne splice" , newArr [p + 1]); \t \t console.log ("mit splice", newArr.splice (newArr [p + 1], 1)) – stepbystep
editieren Sie bitte Ihre Frage, um den Kontext Ihres Kommentars anzugeben. – Pineda