Comment utiliser URLSearchParams pour supprimer l'une des multiples paires clé-valeur avec la même clé ?
P粉214089349
P粉214089349 2023-12-30 23:40:07
0
2
509

J'ai une URL du formulaire : https://www.example.com?tag[]=mountain&tag[]=hill&tag[]=pimple

Maintenant, je veux en supprimer un, en supposant que la fonction tag[]=hill。我知道,我可以使用正则表达式,但我使用 URLSearchParams 来添加这些,所以我也想用它来删除它们。不幸的是 delete() supprimera toutes les paires avec la même clé.

Existe-t-il un moyen de supprimer uniquement une paire clé-valeur spécifique ?

P粉214089349
P粉214089349

répondre à tous(2)
P粉904450959

Vous pouvez également l'ajouter au prototype d'URLSearchParams afin de pouvoir toujours l'utiliser facilement dans votre code.

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));
}

Vous pouvez désormais supprimer des paires clé-valeur spécifiques d'URLSearchParams comme ceci :

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

Faites quelque chose comme ceci :

const tags = entries.getAll('tag[]').filter(tag => tag !== 'hill');
entries.delete('tag[]');
for (const tag of tags) entries.append('tag[]', tag);
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal