madhu malli
madhu malli

Reputation: 25

Need to return objects containing the key which referred from array of objects

I am trying to return the objects which has key of submittedDate. But if i am trying with find() It's returning only the first object. And for map it's returning undefined for object not having submittedDate key. Please find my code with data and also the result I want. thanks in advance.

    const data = [
        {   
            id: '1',
            name: 'Tully Stark',
            submittedData:'mmmmm'
        },
        {
            id:'2',
            name: 'Nalani Romanova',
        },
         {
            id:'3',
            name: 'Nalani Romanova',
            submittedData:'mmmmm'
        }
    ]  
    
    const submitDate = data.find(item => item.submittedData)
    
    console.log(submitDate)

data to return

const returnData = [
    {   
        id: '1',
        name: 'Tully Stark',
        submittedData:'mmmmm'
    },
     {
        id:'3',
        name: 'Nalani Romanova',
        submittedData:'mmmmm'
    }
]  

Upvotes: 0

Views: 37

Answers (2)

Terry Lennox
Terry Lennox

Reputation: 30675

You can use Array.filter(), this will return all matching items.

const data = [ { id: '1', name: 'Tully Stark', submittedData:'mmmmm' }, { id:'2', name: 'Nalani Romanova', }, { id:'3', name: 'Nalani Romanova', submittedData:'mmmmm' } ]

const submitDate = data.filter(item => item.submittedData)
console.log(submitDate)
.as-console-wrapper { max-height: 100% !important; top: 0; }

Upvotes: 0

Gabriele Petrioli
Gabriele Petrioli

Reputation: 195982

the .find by definition only returns the first matching object.

Array.prototype.find()
The find() method returns the value of the first element in the provided array that satisfies the provided testing function. If no values satisfy the testing function, undefined is returned.

You need to use .filter

const submitDate = data.filter(item => item.submittedData)

const data = [{
    id: '1',
    name: 'Tully Stark',
    submittedData: 'mmmmm'
  },
  {
    id: '2',
    name: 'Nalani Romanova',
  },
  {
    id: '3',
    name: 'Nalani Romanova',
    submittedData: 'mmmmm'
  }
]

const submitDate = data.filter(item => item.submittedData)

console.log(submitDate)

Upvotes: 3

Related Questions