Lodash to find if object property exists in array
You can use Lodash _.find()
like this.
var data = [ {"name": "apple", "id": "apple_0"}, {"name": "dog", "id": "dog_1"}, {"name": "cat", "id": "cat_2"}]if(!_.find(data, {name: 'apple'})) { data.push({name: 'apple2'});}console.log(data)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
Reference documentation: https://lodash.com/docs/4.17.14#find
This is Form
_.has(object, path)
Example:
const countries = { country: { name: 'Venezuela' } }const isExist = _.has(countries, 'country.name')// isExist = true
For more information Document Lodash
You can use Array.prototype.find()
or lodash's _.find()
:
const addItem = (arr, item) => { if(!arr.find((x) => x.name === item.name)) { // you can also change `name` to `id` arr.push(item); }};const arr = [ {"name": "apple", "id": "apple_0"}, {"name": "dog", "id": "dog_1"}, {"name": "cat", "id": "cat_2"}];addItem(arr, { "name": "apple", "id": "apple_0" });addItem(arr, { "name": "pear", "id": "pear_3" });console.log(arr);
And a bit shorter but less readable version:
const addItem = (arr, item) => arr.find((x) => x.name === item.name) || arr.push(item); // you can also change `name` to `id` const arr = [ {"name": "apple", "id": "apple_0"}, {"name": "dog", "id": "dog_1"}, {"name": "cat", "id": "cat_2"} ]; addItem(arr, { "name": "apple", "id": "apple_0" }); addItem(arr, { "name": "pear", "id": "pear_3" }); console.log(arr);