Tengo una gran variedad de objetos. Quiero escribir una función para encontrar, por ejemplo, nombres que comiencen con una letra específica y terminen con otra letra específica y devuelva una lista de nombres que comiencen y terminen con ellos.
Probé algunas soluciones pero no obtuve respuesta.
Aquí uso una lista simple: y quiero una lista cuyo nombre comience con "A" y termine con "i" o cualquier otro caso
myList = [{name: "Aji",family: "Ziansi"}, { name: "Alex", family: "ortega"}, {name:"Amandi",family: "Sedirini"}];La salida debería ser así:
desiredLiset = [{name: "Aji",family: "Ziansi"}, {name:"Amandi",family: "Sedirini"}];solo en el método de declaración de función.
Cualquier solución sería apreciada.
Podemos usar Array.filter()
const myList = [{ name: "Aji", family: "Ziansi" }, { name: "Alex", family: "ortega" }, { name: "Amandi", family: "Sedirini" }]; const filterList = (list, start, end) => { return list.filter(obj => { const name = obj.name; return name[0] === start && name[name.length - 1] === end; }); }; const filtered = filterList(myList, "A", "i"); console.log(filtered);Puede usar .filter() para obtener una lista de los nombres que desea:
myList = [{name: "Aji",family: "Ziansi"}, { name: "Alex", family: "ortega"}, {name:"Amandi",family: "Sedirini"}]; let desiredLiset = myList.filter(function(n){ return n.name.match(/^A.*i$/i) // Names that begin with 'A' and end with 'i' }); console.log(desiredLiset) // 0: Object { name: "Aji", family: "Ziansi" } // 1: Object { name: "Amandi", family: "Sedirini" }Prueba esto:
myList = [{name: "Aji",family: "Ziansi"}, { name: "Alex", family: "ortega"}, {name:"Amandi",family: "Sedirini"}]; const start='A' const end='i' const startEndRE = new RegExp(`^${start}.*${end}$`) myList.filter(item=>( startEndRE.test(item.name) )) // Result // [ // { name: 'Aji', family: 'Ziansi' }, // { name: 'Amandi', family: 'Sedirini' } // ]