How do you check if a value is present in an array of objects javascript?

I've assumed that ids are meant to be unique here. some is a great function for checking the existence of things in arrays:

const arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];

function add(arr, name) {
  const { length } = arr;
  const id = length + 1;
  const found = arr.some(el => el.username === name);
  if (!found) arr.push({ id, username: name });
  return arr;
}

console.log(add(arr, 'ted'));

answered Apr 3, 2014 at 17:21

How do you check if a value is present in an array of objects javascript?

AndyAndy

56.7k12 gold badges64 silver badges91 bronze badges

8

This small snippets works for me..

const arrayOfObject = [{ id: 1, name: 'john' }, {id: 2, name: 'max'}];

const checkUsername = obj => obj.name === 'max';

console.log(arrayOfObject.some(checkUsername))

if you have array of elements like ['john','marsh'] then we can do some thing like this

const checkUsername = element => element == 'john';
    
console.log(arrayOfObject.some(checkUsername))

How do you check if a value is present in an array of objects javascript?

answered Jun 18, 2018 at 12:49

SagarSagar

3,9153 gold badges29 silver badges36 bronze badges

1

It's rather trivial to check for existing username:

var arr = [{ id: 1, username: 'fred' }, 
  { id: 2, username: 'bill'}, 
  { id: 3, username: 'ted' }];

function userExists(username) {
  return arr.some(function(el) {
    return el.username === username;
  }); 
}

console.log(userExists('fred')); // true
console.log(userExists('bred')); // false

But it's not so obvious what to do when you have to add a new user to this array. The easiest way out - just pushing a new element with id equal to array.length + 1:

function addUser(username) {
  if (userExists(username)) {
    return false; 
  }
  arr.push({ id: arr.length + 1, username: username });
  return true;
}

addUser('fred'); // false
addUser('bred'); // true, user `bred` added

It will guarantee the IDs uniqueness, but will make this array look a bit strange if some elements will be taken off its end.

answered Apr 3, 2014 at 17:21

raina77owraina77ow

101k14 gold badges191 silver badges225 bronze badges

1

This is what I did in addition to @sagar-gavhane's answer

const newUser = {_id: 4, name: 'Adam'}
const users = [{_id: 1, name: 'Fred'}, {_id: 2, name: 'Ted'}, {_id: 3, name:'Bill'}]

const userExists = users.some(user => user.name === newUser.name);
if(userExists) {
    return new Error({error:'User exists'})
}
users.push(newUser)

How do you check if a value is present in an array of objects javascript?

Kamran

3731 gold badge4 silver badges15 bronze badges

answered Dec 18, 2019 at 9:49

How do you check if a value is present in an array of objects javascript?

2

There could be MULTIPLE POSSIBLE WAYS to check if an element(in your case its Object) is present in an array or not.

const arr = [
  { id: 1, username: 'fred' },
  { id: 2, username: 'bill' },
  { id: 3, username: 'ted' },
];

let say you want to find an object with id = 3.

1. find: It searches for an element in an array and if it finds out then it returns that element else return undefined. It returns the value of the first element in the provided array that satisfies the provided testing function. reference

const ObjIdToFind = 5;
const isObjectPresent = arr.find((o) => o.id === ObjIdToFind);
if (!isObjectPresent) {            // As find return object else undefined
  arr.push({ id: arr.length + 1, username: 'Lorem ipsum' });
}

2. filter: It searches for elements in an array and filters out all element that matches the condition. It returns a new array with all elements and if none matches the condition then an empty array. reference

const ObjIdToFind = 5;
const arrayWithFilterObjects= arr.filter((o) => o.id === ObjIdToFind);
if (!arrayWithFilterObjects.length) {       // As filter return new array
  arr.push({ id: arr.length + 1, username: 'Lorem ipsum' });
}

3. some: The some() method tests whether at least one element is present in an array that passes the test implemented by the provided function. It returns a Boolean value. reference

const ObjIdToFind = 5;
const isElementPresent = arr.some((o) => o.id === ObjIdToFind);
if (!isElementPresent) {                  // As some return Boolean value
  arr.push({ id: arr.length + 1, username: 'Lorem ipsum' });
}

answered Sep 3, 2020 at 4:26

How do you check if a value is present in an array of objects javascript?

DecPKDecPK

23k5 gold badges20 silver badges39 bronze badges

I think that, this is the shortest way of addressing this problem. Here I have used ES6 arrow function with .filter to check the existence of newly adding username.

var arr = [{
    id: 1,
    username: 'fred'
}, {
    id: 2,
    username: 'bill'
}, {
    id: 3,
    username: 'ted'
}];

function add(name) {
    var id = arr.length + 1;        
            if (arr.filter(item=> item.username == name).length == 0){
            arr.push({ id: id, username: name });
        }
}

add('ted');
console.log(arr);

Link to Fiddle

answered Jul 11, 2017 at 10:22

How do you check if a value is present in an array of objects javascript?

Kushan RandimaKushan Randima

2,0365 gold badges29 silver badges55 bronze badges

0

Let's assume we have an array of objects and you want to check if value of name is defined like this,

let persons = [ {"name" : "test1"},{"name": "test2"}];

if(persons.some(person => person.name == 'test1')) {
    ... here your code in case person.name is defined and available
}

answered Mar 31, 2020 at 9:11

How do you check if a value is present in an array of objects javascript?

Hasan ZahranHasan Zahran

1,24614 silver badges13 bronze badges

2

try this

first method using some

  let arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
    let found = arr.some(ele => ele.username === 'bill');
    console.log(found)

second method using includes, map

   let arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
    let mapped = arr.map(ele => ele.username);
    let found = mapped.includes('bill');
    console.log(found)

answered Feb 20, 2020 at 16:24

How do you check if a value is present in an array of objects javascript?

Trilok SinghTrilok Singh

1,06911 silver badges8 bronze badges

2

You could prototype your array to make it more modular, try something like this

    Array.prototype.hasElement = function(element) {
        var i;
        for (i = 0; i < this.length; i++) {
            if (this[i] === element) {
                return i; //Returns element position, so it exists
            }
        }

        return -1; //The element isn't in your array
    };

And you can use it as:

 yourArray.hasElement(yourArrayElement)

answered Nov 4, 2015 at 19:11

Luis SarazaLuis Saraza

1962 silver badges10 bronze badges

Accepted answer can also be written in following way using arrow function on .some

 function checkAndAdd(name) {
     var id = arr.length + 1;
     var found = arr.some((el) => {
           return el.username === name;
     });
     if (!found) { arr.push({ id: id, username: name }); }
 }

answered Sep 5, 2018 at 17:10

How do you check if a value is present in an array of objects javascript?

Hemadri DasariHemadri Dasari

30.5k33 gold badges113 silver badges152 bronze badges

Here is an ES6 method chain using .map() and .includes():

const arr = [ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]

const checkForUser = (newUsername) => {
      arr.map(user => {
        return user.username
      }).includes(newUsername)
    }

if (!checkForUser('fred')){
  // add fred
}
  1. Map over existing users to create array of username strings.
  2. Check if that array of usernames includes the new username
  3. If it's not present, add the new user

answered Apr 28, 2020 at 5:51

How do you check if a value is present in an array of objects javascript?

Len JosephLen Joseph

1,2639 silver badges20 bronze badges

I like Andy's answer, but the id isn't going to necessarily be unique, so here's what I came up with to create a unique ID also. Can be checked at jsfiddle too. Please note that arr.length + 1 may very well not guarantee a unique ID if anything had been removed previously.

var array = [ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' } ];
var usedname = 'bill';
var newname = 'sam';

// don't add used name
console.log('before usedname: ' + JSON.stringify(array));
tryAdd(usedname, array);
console.log('before newname: ' + JSON.stringify(array));
tryAdd(newname, array);
console.log('after newname: ' + JSON.stringify(array));

function tryAdd(name, array) {
    var found = false;
    var i = 0;
    var maxId = 1;
    for (i in array) {
        // Check max id
        if (maxId <= array[i].id)
            maxId = array[i].id + 1;

        // Don't need to add if we find it
        if (array[i].username === name)
            found = true;
    }

    if (!found)
        array[++i] = { id: maxId, username: name };
}

answered Apr 3, 2014 at 17:27

UxonithUxonith

1,5921 gold badge14 silver badges16 bronze badges

2

i did try the above steps for some reason it seams not to be working for me but this was my final solution to my own problem just maybe helpful to any one reading this :

let pst = post.likes.some( (like) => {  //console.log(like.user, req.user.id);
                                     if(like.user.toString() === req.user.id.toString()){
                                         return true
                                     } } )

here post.likes is an array of users who liked a post.

answered Jan 22, 2020 at 1:06

How do you check if a value is present in an array of objects javascript?

Greatly simplifying my previous solutions here and providing better performance by not iterating over the entire array unnecessarily before checking for the existence of the specified ID.

This should be the simplest solution (I think):

const users = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
const addUser = (username) => {
  const user = users.find((user) => user.username === username);
  if (user) return { ...user, new: false };
  const newUser = {
    id: users.length + 1,
    username,
  };
  users.push(newUser);
  return { ...newUser, new: true };
};

Here is how that might look as a live example:

const users = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
const addUser = (username) => {
  const user = users.find((user) => user.username === username);
  if (user) return { ...user, new: false };
  const newUser = {
    id: users.length + 1,
    username,
  };
  users.push(newUser);
  return { ...newUser, new: true };
};

// a little extra scripting here to support the input and button in the example

const form = document.querySelector('form');
const input = document.querySelector('input');
const span = document.querySelector('span');
const pre = document.querySelector('pre');

const syncDataWithPre = () => {
  pre.innerHTML = JSON.stringify(users, null, 2);
};

form.onsubmit = (e) => {
  e.preventDefault();
  span.textContent = '';
  if (input.value) {
    const user = addUser(input.value);
    const { new: isNew, ...userDetails } = user;
    span.classList[isNew ? 'add' : 'remove']('new');
    span.textContent = `User ${isNew ? 'added' : 'already exists'}`;
  }
  input.value = '';
  syncDataWithPre();
};

syncDataWithPre();
body {
  font-family: arial, sans-serif;
}
span {
  display: block;
  padding-top: 8px;
  font-weight: 700;
  color: #777;
}
span:empty {
  display: none;
}
.new {
  color: #0a0;
}
.existing: {
  color: #777;
}

answered May 14, 2021 at 14:16

How do you check if a value is present in an array of objects javascript?

Native functions of array are sometimes 3X - 5X times slower than normal loops. Plus native functions wont work in all the browsers so there is a compatibility issues.

My Code:


This way you can achieve result faster.

Note: I have not checked if parameter passed is empty or not, if you want you can put a check on it or write a regular expression for particular validation.

answered Nov 10, 2017 at 9:20

ZaheenZaheen

8119 silver badges11 bronze badges

xorWith in Lodash can be used to achieve this

let objects = [ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]
let existingObject = { id: 1, username: 'fred' };
let newObject = { id: 1729, username: 'Ramanujan' }

_.xorWith(objects, [existingObject], _.isEqual)
// returns [ { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]

_.xorWith(objects, [newObject], _.isEqual)
// returns [ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ,{ id: 1729, username: 'Ramanujan' } ]

answered Nov 20, 2018 at 5:59

How do you check if a value is present in an array of objects javascript?

sudo bangbangsudo bangbang

25k11 gold badges73 silver badges76 bronze badges

You can try this also

 const addUser = (name) => {
    if (arr.filter(a => a.name == name).length <= 0)
        arr.push({
            id: arr.length + 1,
            name: name
        })
}
addUser('Fred')

answered Aug 31, 2020 at 6:17

How do you check if a value is present in an array of objects javascript?

function number_present_or_not() {
  var arr = [2, 5, 9, 67, 78, 8, 454, 4, 6, 79, 64, 688];
  var found = 6;
  var found_two;
  for (i = 0; i < arr.length; i++) {
    if (found == arr[i]) {
      found_two = arr[i];
      break;
    }
  }
  if (found_two == found) {
    console.log('number present in the array');
  } else {
    console.log('number not present in the array');
  }
}

How do you check if a value is present in an array of objects javascript?

answered Sep 30, 2019 at 10:57

How do you check if a value is present in an array of objects javascript?

I was given a condition to check the data in the table of the mysql database the object array of my table consist of the id, latitude and longitude as column names, I have to check whether the location is in the database else insert this into the table so: I created a function of handle submit called by a button,

handle Submit = (event) => {
        const latitude = document.getElementById("latitude").innerHTML;
        const longitude = document.getElementById("longitude").innerHTML;
        const found = this.state.data.some((el) => el.latitude === latitude);
    if (!found) {
      Axios.post("http://localhost:3001/api/insert", {
        latitude: latitude,
        longitude: longitude,
      }).then(() => {
        alert("successful insert");
      });
      console.log(latitude, longitude);
    }
  };

Here you can see the conditional statement for inserting if not exist in the database.

answered May 12 at 16:48

How do you check if a value is present in an array of objects javascript?

Please have a look on given example

$(document).ready(function(){
  const arr = document.querySelector(".list");
    var abcde = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' }];
  $("#btnCheckUser").click(function() {
    var tbUsername = $("#tbUsername").val();
    if (abcde.some(obj => obj.username === tbUsername)) {
        alert('existing user ' + tbUsername);
        return;
    }
    else {
        abcde.push({ id: abcde.length + 1, username: tbUsername });
        alert('added new user ' + tbUsername);
        arr.appendChild(createArray(tbUsername));
        return;
    }
  });
  
  function createArray(name) {
    let li = document.createElement("li");
    li.textContent = name;
    return li;
  }
  abcde.forEach((x) => arr.appendChild(createArray(x.username)));

});


Add text and click on Check.

    answered Mar 16, 2021 at 6:47

    How do you check if a value is present in an array of objects javascript?

    Malik ZahidMalik Zahid

    4853 silver badges10 bronze badges

    1

    const __checkIfElementExists__ = __itemFromArray__ => __itemFromArray__.*sameKey* === __outsideObject__.*samekey*;
    
        if (cartArray.some(checkIfElementExists)) {
            console.log('already exists');
        } else {
            alert('does not exists here')
    
    

    How do you check if a value is present in an array of objects javascript?

    emkarachchi

    7301 gold badge7 silver badges18 bronze badges

    answered Nov 7, 2020 at 19:46

    1

    How do you check if a value is present in an object JavaScript?

    JavaScript provides you with three common ways to check if a property exists in an object: Use the hasOwnProperty() method. Use the in operator. Compare property with undefined .

    How do you check if a value exists in an array of objects TypeScript?

    To check if a TypeScript array contains an object:.
    Pass a function to the Array. find() method..
    Check whether the identifier of the object is equal to a specific value and return true if it is..
    Array. find will return the object if the conditional check is satisfied at least once..

    How do you check if an item is in an array?

    The simplest and fastest way to check if an item is present in an array is by using the Array. indexOf() method. This method searches the array for the given item and returns its index. If no item is found, it returns -1.

    How do you find the value of an object in an array?

    If you need the index of the found element in the array, use findIndex() ..
    If you need to find the index of a value, use indexOf() . ... .
    If you need to find if a value exists in an array, use includes() . ... .
    If you need to find if any element satisfies the provided testing function, use some() ..