title: Underscore - Compare two arrays of objects (positions)
body: <p>Is there a way to compare differences between arrays based on changes on their elements positions?</p>
  
  <p>I have an original array of objects which undergoes a change on one of it's element's values, this change is mapped into a new array:</p>
  
  <pre><code>   origElements = [{id: 1, value: 50}, 
                     {id: 2, value: 60}, 
                     {id: 3, value: 70}]
  
  changedElements = [{id: 1, value: 50},
                     {id: 3, value: 60}, 
                     {id: 2, value: 120}]
  
  
  var diff = _.difference(_.pluck(origElements, "id"), _.pluck(changedElements, "id"));
  var result = _.filter(origElements, function(obj) { return diff.indexOf(obj.id) &gt;= 0; });
  </code></pre>
  
  <p>In this case it is clear why 'result' would return nothing. As there's no difference of values between: [1, 2, 3] and [1, 3, 2]. What I'm trying to achieve here is a 'strict difference' which would look at index as well, thus returning some reference to the new order of the objects.</p>