Antwort an „Ryuno-Ki“ verfassen

Generatoren bieten sich vor allem dann an, wenn das zu iterierende Objekt „groß” wird.

Für das Beispiel hier geht es auch einfacher:

const url = 'https://example.net?a=1&b=2&c=3&pre_d=4&pre_e=5';

const urlObject = new URL(url);
const searchParams = urlObject.searchParams;
const results = Array.from(searchParams).filter(([key]) => key.startsWith('pre_'));

console.log('result', results);

Dabei habe ich aus dem URLSearchParams erst einmal ein Array gemacht (Array.from()), welches anschließend gefiltert wurde. [key] nutzt dabei destructuring assignment zum Auspacken (ohne auf ein Rest-Parameter einzugehen).

Das Ergebnis wird wie im Beispiel ausgegeben.

Persönlich würde ich es wohl noch in eine Funktion geben, die die url und das Präfix entgegennimmt und passende Query-Parameter zurückgibt:

const url = 'https://example.net?a=1&b=2&c=3&pre_d=4&pre_e=5';
const filteredSearchParams = filterUrlSearchParamsByPrefix(url, 'pre_');
console.log(filteredSearchParams.toString());

function filterUrlSearchParamsByPrefix(url, prefix) {
  const urlObject = new URL(url);
  const results = Array
    .from(urlObject.searchParams)
    .filter(([key]) => key.startsWith(prefix));
  return new URLSearchParams(results);
}

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen