GOOGLE ADS

Dienstag, 26. April 2022

Entfernen Sie alle doppelten Zeilen aus dem Rückgabedaten-HTML durch Regex

Ich verwende Regex im App-Skript, um Daten von der Website zu kratzen:

Ich versuche diesen Code:

const name = /(?<=<span class="(.*?)">)(.*?)(?=<\/span>)/gi; // work Great
for(var i = 0; i < 9; i++){
var names = data[i].match(name)[0];
Logger.log(names)
}

Dieser Code funktioniert gut, aber gib mir doppelte Zeilen:

1:56:22 PM Notice Execution started
1:56:35 PM Info john
1:56:35 PM Info ara
1:56:35 PM Info john
1:56:35 PM Info anita
1:56:35 PM Info ara
1:56:35 PM Info fabian
1:56:35 PM Info ara
1:56:35 PM Info john
1:56:35 PM Info fabian
1:56:37 PM Notice Execution completed

Ich möchte alle doppelten Namen entfernen und das Ergebnis so sehen:

1:56:22 PM Notice Execution started
1:56:35 PM Info john
1:56:35 PM Info ara
1:56:35 PM Info anita
1:56:35 PM Info fabian
1:56:37 PM Notice Execution completed


Lösung des Problems

Satz

Dazu können Sie ein Set ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set ) verwenden.

names = Array.from(new Set(names));

Wir haben kein endgültiges Ziel, hier loggen Sie einfach Ihre Daten ein, aber Sie müssen Ihr Set möglicherweise nicht wieder in ein Array konvertieren:)

Sortieren

Eine andere Lösung wäre, Ihr Array zu sortieren und dann darauf zu iterieren, um Duplikate einfacher zu entfernen.

array.sort();
array.filter((el, index) => index < array.length && el!== array[index + 1]);

Test auf meinem Browser::

let a = [1,1,2,3,4,4,5,6,7,7];
a.filter((el, index) => index < a.length && el!== a[index + 1]);

Array(7) [ 1, 2, 3, 4, 5, 6, 7 ];

Diese Lösung behält offensichtlich keine Reihenfolge bei, während die erste die anfängliche Reihenfolge beizubehalten scheint, zumindest auf dem js meines Firefox

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...