0
votes

Lodash pour filtrer et trier

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' }
]


0 commentaires

3 Réponses :


0
votes

Pas besoin de Lodash pour filtrage ou mappage plus, pas depuis ES5 (2009) Ajout du filtre FILTER et MAP TO TRAY.POTOTYPE . < p> Si vous connaissez les noms des propriétés, vérifiez-les simplement: xxx

sinon et vous souhaitez vérifier toutes les propriétés , vous pouvez utiliser objet.values ​​ et certains (une autre chose ES5): xxx

objet.values ​​ est ES2017 +, mais facilement polyfilled .

J'ai aussi utilisé array.pototype.includes là, qui est ES2016 (et encore une fois, facilement polyfilled).


0 commentaires

0
votes

Vous pouvez simplement utiliser le filtre code> et et faire toutes les valeurs à un seul cas pour correspondre à la réalisation d'une insensibilité de casse

p>

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'))


0 commentaires

0
votes

avec lodash strong> la solution ne semble pas aussi différente de celle différente de ES6 forte>:

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'))


0 commentaires