3

I have an array of objects:

const guests = [
               { id: 1, rsvp: true },
               { id: 2, rsvp: false },
               { id: 3, rsvp: true  },
               { id: 4, rsvp: false }
             ];

I would like to write a function which selects only the objects corresponding to IDs (guests) who have rsvp'd.

function selectGuests(guests, id) {
  list.forEach(function(id) {
    if(id.true) {
      push.SelectGuests();
    }
});

  return selectGuests;
}

however, I am getting gibberish results.

Any help on this one or points in the right direction would be appreciated!

Cheers!

0

3 Answers 3

3

Use array.filter()

DEMO

 const guests = [
               { id: 1, rsvp: true },
               { id: 2, rsvp: false },
               { id: 3, rsvp: true  },
               { id: 4, rsvp: false }
];

var result = guests.filter(t=>t.rsvp);
console.log(result);

Sign up to request clarification or add additional context in comments.

Comments

1

using forEach

function selectGuests(guests) 
{
    let result = [];
    guests.forEach(function (guest) {
        if (guest.rsvp) {
            result.push(guest);
        }
    });

    return result;
}

const guests = [
    { id: 1, rsvp: true },
    { id: 2, rsvp: false },
    { id: 3, rsvp: true  },
    { id: 4, rsvp: false }
];

let a = selectGuests(guests);
console.log(a);

or simpler using filter method

const guests = [
    { id: 1, rsvp: true },
    { id: 2, rsvp: false },
    { id: 3, rsvp: true  },
    { id: 4, rsvp: false }
];

let a = guests.filter(function(item){return item.rsvp});
console.log(a);

Comments

0

here is a simplified version without using es6 features.

function selectGuests(guests) {
  var selectedGuests = []
  // forEach gets the array elements (one by one) as first param 
  guests.forEach(function(guest) {
    if(guest.rsvp) {
      selectedGuests.push(guest)
    }
  })
  return selectedGuests
}

// call it as follows 
selectGuests(guests)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.