Estoy usando Materialise CSS Autocompletar para mi Google Apps Script con los datos de mis contactos de Google. Me gustaría poder ordenar el orden en que aparecen los contactos según una palabra específica en sus nombres. Por ejemplo, digamos que tengo los siguientes contactos:
Me gustaría que los contactos que contienen la palabra Móvil aparezcan en la parte superior de la lista y el resto en orden alfabético:
Para hacer eso, he estado tratando de usar sortFunction de la documentación de Materialise CSS pero sin éxito. ¿Cómo podría lograr algo así?
Puede ordenar la matriz comprobando si contiene el término "móvil", consulte a continuación. Esto devuelve primero todos los que contienen "móvil" y luego todos los demás.
const arr = ["Tom Mobile", "Sam", "Jess Mobile"] arr.sort( (el1) => { if(el1.search(/mobile/gi) == -1) return 1 return -1 }))Pero eso es para matrices y no necesita matrices, por lo tanto, esa respuesta fue general y no específica. Por lo tanto, hice una demostración rápida de lo que realmente querías:
document.addEventListener('DOMContentLoaded', function() { const options = { data : { "Tom mobile" : null, "Thomas" : null, "Tim mobile" : null }, sortFunction : sortBy } var elems = document.querySelectorAll('.autocomplete'); var instances = M.Autocomplete.init(elems, options); }); // Sort function for sorting autocomplete results // prioritize if text contains mobile function sortBy(a, b) { return b.indexOf("mobile") - a.indexOf("mobile"); }Referencia