J'ai un problème avec la fonction Split (), j'ai une entrée dans laquelle je pousse des identifiants que je passe à travers des objets de mappage.
mon HTML: strong> p> value=",100,101"
3 Réponses :
Vous pouvez utiliser Remplacer
imgIdInput.val( imgIdInput.val().split(",").join().replace(",","") );
console.log(",100,101".replace(",","")) // "100,101"
Bien que cela fonctionne pour la solution décrite dans l'OP, c'est vraiment i> pas une bonne idée. Que se passe-t-il s'il n'y a pas de dirigeant , code> dans la sortie - comme il ne devrait pas y avoir. Dans ce cas, les deux premiers articles sont fusionnés
Et bien que vous puissiez la modifier pour simplement supprimer un de premier plan, code>, cela met la cassette sur la fissure plutôt que de fixer le verre. :-)
Le problème est probablement que Je suggérerais Division de la chaîne une fois avant la boucle (manipulation du problème avec "". Split (",") code> vous donne [""] code>, pas un tableau vide. "" code>), ajoutant à la matrice résultante, puis la convertissant à une chaîne une fois à la fin, voir *** Code> Commentaires: P> frame.on( 'select', function() {
var imgIdInput = $( '.custom-img-id' );
var attachments = frame.state().get('selection').map(function( a ) {
a.toJSON();
return a;
}),
thesamepicture = false,
i;
// *** Get the current IDs as an array
var val = imgIdInput.val().trim();
var ids = val ? imgIdInput.val().split(",") : [];
for (i = 0; i < attachments.length; ++i) {
imgContainer.append('<img src="' + attachments[i].attributes.url + '"/>');
// *** Add to the array
ids.push(attachments[i].id);
}
// *** Save the IDs in the hidden input
imgIdInput.val(ids.join());
});
Merci beaucoup! Maintenant, tout fonctionne et j'ai eu le point ce que vous avez fait.
Vous devez utiliser la fonction Split, Filtrer et rejoindre la matrice et la chaîne pour obtenir la sortie attendue.
p>
var value=",100,101"
value = value.split(",")
const finalValue = value.filter(tmp =>{
return tmp !== ''
})
console.log(finalValue.join(","));
Je suggérerais de corriger la logique qui crée la matrice avec des éléments vides au lieu de pirater la solution pour supprimer les caractères principaux
, code>. Au premier abord, il semble que l'utilisation deSplit () code> etpoussoir () code> dans chaque itération de votrepour code> boucle est une odeur de code, notamment parce que Vous ne faites rien avec le résultat. Pouvez-vous ajouter un exemple de travail à la question.Je ne vois pas comment vous obtenez du tout. Sont-ils ajoutés dans le code que vous n'avez pas montré? Cette ligne ne le fait pas:
imgidinput.val (). Split (","). Push (pièces jointes [i] .Id); code> c'est effectivement un long no-op, il crée un tableau (le résultat de la scission), pousse quelque chose dessus, puis le jette.@ T.J.Crowder Oui, ce n'est pas du code complet, je reçois des identifiants à partir de pièces jointes variables, comme vous pouvez le constater, je me fais mapper et d'obtenir des objets avec des attributs comme ID, URL etc.
Couple de solutions de rechange rapides:
", 100,101" .replace (",", "") .trim (). Split ("") .join (",") code> ou", 100,101 « Donc, cela ne se produit pas est une meilleure approche (donc un problème xy)