I have started using linq.js a while ago, and found it very useful, but there's an issue I really can't solve somehow. I'm using angular, and I have a simple JSON array with the following structure:
[
{ id: 1, name: 'John', age: 20},
{ id: 2, name: 'Josh', age: 34},
{ id: 3, name: 'Peter', age: 32},
{ id: 4, name: 'Anthony', age: 27},
]
I'm looking for the best (or at least a working) example which could help me understanding how to remove an element of this array by the id
property. I have found some examples with simple array (but not with JSON elements), those haven't helped me too much.
I have the following function to do the remove part:
this.removePerson = function(id) {
//here's how I access the array
vm.people
}
With linq.js
, you need do convert the data ToDictionary
, get the wanted item with Single
from enumerable
and remove the item.
Then you have to rebuild the array again from dictionary via enumerable and select to array.
Et voilĂ !
var data = [{ id: 1, name: 'John', age: 20}, { id: 2, name: 'Josh', age: 34}, { id: 3, name: 'Peter', age: 32}, { id: 4, name: 'Anthony', age: 27}],
enumerable = Enumerable.From(data),
dictionary = enumerable.ToDictionary();
dictionary.Remove(enumerable.Single(s => s.id === 3));
console.log(dictionary.ToEnumerable().Select(s => s.Key).ToArray());
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/linq.js/2.2.0.2/linq.js"></script>