Wie lösche ich mit URLSearchParams eines von mehreren Schlüssel-Wert-Paaren mit demselben Schlüssel?
P粉214089349
P粉214089349 2023-12-30 23:40:07
0
2
514

Ich habe eine URL der Form: https://www.example.com?tag[]=mountain&tag[]=hill&tag[]=pimple

Jetzt möchte ich eines davon löschen, vorausgesetzt, die Funktion tag[]=hill。我知道,我可以使用正则表达式,但我使用 URLSearchParams 来添加这些,所以我也想用它来删除它们。不幸的是 delete() löscht alle Paare mit demselben Schlüssel.

Gibt es eine Möglichkeit, nur ein bestimmtes Schlüssel-Wert-Paar zu löschen?

P粉214089349
P粉214089349

Antworte allen(2)
P粉904450959

您也可以将其添加到 URLSearchParams 的原型中,以便您始终可以在代码中轻松使用它。

URLSearchParams.prototype.remove = function(key, value) {
    const entries = this.getAll(key);
    const newEntries = entries.filter(entry => entry !== value);
    this.delete(key);
    newEntries.forEach(newEntry => this.append(key, newEntry));
}

现在您可以从 URLSearchParams 中删除特定的键值对,如下所示:

searchParams.remove('tag[]', 'hill');
P粉725827686

做这样的事情:

const tags = entries.getAll('tag[]').filter(tag => tag !== 'hill');
entries.delete('tag[]');
for (const tag of tags) entries.append('tag[]', tag);
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage