Ich habe bekam Reihe von int
‚s in tracksList_filtered
Variable: [10422, 10681, 10421, 10392, 10616, 10589, 10581, 10423, 10743, 10213, 10613, 10609, 10427, 10484, 10031, 10169, 10695, 10580, 10171, 10703, 10486, 10631, 10642, 10137, 10566, 10704, 10420, 10525, 10209, 10658, 10617, 10127, 10128, 10391, 10602, 10587, 10030, 10393, 10660, 10614, 10485, 10523, 10215, 10029, 10655, 10210, 10659, 10041, 1075, 10425, 10724, 1068, 10657, 10216, 10662, 10211, 10410, 10601, 10644, 10212, 10074, 10696, 10424, 10208, 1074, 10394, 10419, 10426, 10705, 10038, 10661, 10040, 10165, 10396, 10168, 10653, 10610]
So entfernen Sie Elemente aus dem Array in D
ich von ihm 10422, 10681, 10421
(nicht durch den Index) entfernen müssen.
Ich schrieb nächsten Code:
auto tracksList_filtered = result.array.map!(a => a[0].coerce!int);
writeln(tracksList_filtered);
auto x = tracksList_filtered.array.remove(10422, 10681, 10421);
writeln(x);
Es ist verknallt mit Fehler: range is smaller than amount of items to pop
Beispiel aus docs sagt:. „Mehrere Indizes können in Entfernen übergeben werden in diesem Fall Elemente an den jeweiligen Indizes sind alle entfernt. Die Indizes müssen in aufsteigender Reihenfolge übergeben werden, sonst tritt eine Ausnahme auf. "
int[] a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
assert(remove(a, 1, 3, 5) == [ 0, 2, 4, 6, 7, 8, 9, 10 ]);
Ich habe versucht, es zu überprüfen und platzierte Elemente in aufsteigender Reihenfolge zu entfernen:
auto x = tracksList_filtered.array.remove(1068,1074);
aber bekam gleiche Ausnahme.
Indizes der Schlitz in der Anordnung sind, nicht der Wert im Array. Benötigen Sie das Array in der gleichen Reihenfolge oder nicht? –
Egal. –