2016-05-15 20 views
1

I Array von Objekt haben:Lodash Funktion funktioniert nicht richtig

var arr = [{id:1, name:Michael}, 
    {Id:2, name:"Mix"}, 
    {Id:3, name:"Mark"}, 
    {Id:4, name:"Marta"}, 
    {Id:5, name:"Anna"}]; 

var desiredId = 3; 

Ich versuche, wie das Objekt aus Objektarray mit Hilfe von lodash Bibliothek zu erhalten:

var result = _.find(arr, 'Id', desiredId); 

Aber ich immer Objekt erhalten mit id = 1 (dh {id:1, name:Michael}).

Irgendeine Idee, warum ich nicht das erwartete Objekt bekomme (wo Id = 3).

+0

auf der Version von lodash Je Sie den dritten Parameter verwenden unterschiedliche Auswirkungen auf die Ausführung von '_.find' haben kann. Überprüfen Sie die [docs] (https://lodash.com/docs) für das tatsächliche Verhalten :) – Andreas

Antwort

2

Wenn Sie die lodash Dokumentation find() überprüfen, sollte es ein Beispiel geben, wo Sie eine matches() Kurzschrift verwenden können. Sie werden feststellen, dass diese Abkürzung bei Abfragen aus Sammlungen häufig vorkommt.

Beispiel:

var arr = [ 
 
    {Id:1, name:"Michael"}, 
 
    {Id:2, name:"Mix"}, 
 
    {Id:3, name:"Mark"}, 
 
    {Id:4, name:"Marta"}, 
 
    {Id:5, name:"Anna"} 
 
]; 
 

 
var desiredId = 3; 
 
var result = _.find(arr, { Id: desiredId }); 
 

 
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.js"></script>

Verwandte Themen