Reputation: 25
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
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
Reputation: 195982
the .find
by definition only returns the first matching object.
Array.prototype.find()
Thefind()
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