Función para eliminar valores en blancoHola, estoy tratando de escribir una función JSL simple para eliminar valores en blanco de una lista.
¿Alguien puede ayudarme a modificar este código? (me devuelve nulo)
gracias, 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: función para eliminar valores en blancoDebes devolver x como la última declaración de tu función.
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: función para eliminar valores en blanco¡Súper! ¡Ese era mi problema!
Re: función para eliminar valores en blancoMe alegro de que te haya funcionado. Debo señalar que realmente no es necesario crear una función para hacer eso.
los Loc () La función le dará los índices de los espacios en blanco en la lista y luego podrá usar Eliminar() o Eliminar de() para deshacerse de todos a la vez.
myList = {"apple", "orange", "banana", "", "grape", "", "plum"};
blanks = Loc( mylist, "" ); // [4,6]
blanks = As List( blanks ); // {4, 6}
Remove From( mylist, blanks );
El único truco aquí es que Loc () devuelve una matriz y Remove () y Remove From () quieren un argumento de lista, por lo que debe reformularlo Como lista () .