J'utilise Lodash pour fier à une matrice, cependant, il y fait la casse sensible à la casse, je ne peux pas non plus expliquer comment interroger plusieurs champs.
donné cet exemple: P>
[ { a: 'John', b: 'Smith' }, { a: 'Penny', b: 'Eversmith' }, { a: 'Smithers', b: 'Jones' } ]
3 Réponses :
Pas besoin de Lodash pour filtrage ou mappage plus, pas depuis ES5 (2009) Ajout du filtre CODE> FILTER CODE> et sinon et vous souhaitez vérifier J'ai aussi utilisé MAP CODE> TO
TRAY.POTOTYPE CODE>. < p> Si vous connaissez les noms des propriétés, vérifiez-les simplement: p>
objet.values code>
et certains code> (une autre chose ES5): p>
objet.values code> est ES2017 +, mais facilement polyfilled . P>
array.pototype.includes code>
là, qui est ES2016 (et encore une fois, facilement polyfilled). p> p>
Vous pouvez simplement utiliser le filtre p> code> et
et faire toutes les valeurs à un seul cas pour correspondre à la réalisation d'une insensibilité de casse
let arr = [
{ a: 'John', b: 'Smith' },
{ a: 'Penny', b: 'Eversmith' },
{ a: 'Smithers', b: 'Jones' },
{ a: 'Jane', b: 'Doe' }
];
let findName = (arr,name) => arr.filter(val=>{
return Object.values(val).some(v=> v.toLowerCase().includes(name.toLowerCase()))
})
console.log(findName(arr,'Smith'))
avec p> let arr = [ { a: 'John', b: 'Smith' }, { a: 'Penny', b: 'Eversmith' }, { a: 'Smithers', b: 'Jones' }, { a: 'Jane', b: 'Doe' } ];
let search = (a, s) => a.filter(x =>
Object.values(x).some(y => y.toLowerCase().includes(s.toLowerCase())))
console.log(search(arr, 'Smith'))
console.log(search(arr, 'doe'))