Psst: have a look at the JavaScript Console 💁
// ## Array Cardio Day 2
const people = [
{ name: 'Wes', year: 1988 },
{ name: 'Kait', year: 1986 },
{ name: 'Irv', year: 1970 },
{ name: 'Lux', year: 2015 }
];
const comments = [
{ text: 'Love this!', id: 523423 },
{ text: 'Super good', id: 823423 },
{ text: 'You are the best', id: 2039842 },
{ text: 'Ramen is my fav food ever', id: 123523 },
{ text: 'Nice Nice Nice!', id: 542328 }
];
// Some and Every Checks
// Array.prototype.some() // is at least one person 19 or older?
const hasAdults = people.some( function(person) {
const currYear = new Date().getFullYear();
return (currYear - person.year) >= 19;
});
console.log(hasAdults); // true
// ES2015 variation with implicit return
const hasAdults = people.some( person => (new Date().getFullYear - person.year) >= 19 );
console.log(hasAdults); // true
// Array.prototype.every() // is everyone 19 or older?
const allAdults = people.every( function(person) {
const currYear = new Date().getFullYear();
return (currYear - person.year) >= 19;
});
console.log(allAdults); // false
// ES2015 variation with implicit return
const allAdults = people.every( person => (new Date().getFullYear - person.year) >= 19 );
console.log(allAdults); // false
// Array.prototype.find()
// Find is like filter, but instead returns just the one you are looking for
// find the comment with the ID of 823423
const comment = comments.find( function(comment) {
return comment.id === 823423;
});
// ES2015 variation with implicit return
const comment = comments.find( comment => comment.id === 823423 );
console.log(comment); // {text: "Super good", id: 823423}
// Array.prototype.findIndex()
// Find the comment with this ID
const indexToDelete = comments.findIndex( function(comment) {
return comment.id === 823423;
});
// ES2015 variation with implicit return
const indexToDelete = comments.find( comment => comment.id === 823423 );
console.log(indexToDelete); // 1
// delete the comment with the ID of 823423
comments.splice(indexToDelete, 1);
console.table(comments);
// Or, without mutation by 'spreading' over the
// new arrays created by slice()
const newComments = [
...comments.slice(0,indexToDelete),
...comments.slice(indexToDelete + 1)
];
console.table(newComments);