Fonction pour supprimer les valeurs videsSalut, j'essaie d'écrire une fonction JSL simple pour supprimer les valeurs vides d'une liste.
Quelqu'un peut-il m'aider à modifier ce code? (il me renvoie nul)
merci, DJ
myList={"apple","orange","banana","","grape","","plum"};
StripBlanks = function({x},
for(a=nitems(x),a>=1,a--,
if(
x[a]=="",
x=remove(x,a)
)
)
);
StripBlanks(myList);
ScriptingRe: Fonction pour supprimer les valeurs videsVous devez renvoyer x comme dernière instruction de votre fonction.
myList = {"apple", "orange", "banana", "", "grape", "", "plum"};
StripBlanks = Function( {x},
For( a = N Items( x ), a >= 1, a--,
If( x[a] == "",
x = Remove( x, a )
)
);
x;
);
StripBlanks( myList );Re: Fonction pour supprimer les valeurs videsSuper! C'était mon problème!
Re: Fonction pour supprimer les valeurs videsHeureux que cela ait fonctionné pour vous. Je dois souligner que vous n'avez pas vraiment besoin de créer une fonction pour faire cela.
le Loc () La fonction vous donnera les indices des blancs dans la liste et vous pourrez ensuite utiliser Retirer() ou Retirer() pour les éliminer tous à la fois.
myList = {"apple", "orange", "banana", "", "grape", "", "plum"};
blanks = Loc( mylist, "" ); // [4,6]
blanks = As List( blanks ); // {4, 6}
Remove From( mylist, blanks );
La seule astuce ici est que Loc () renvoie une matrice et Remove () et Remove From () veulent un argument de liste, vous devez donc le refondre Comme liste () .