Skip to content

Instantly share code, notes, and snippets.

@Beraliv
Last active February 3, 2019 18:46
Show Gist options
  • Save Beraliv/6f3fe33d6dab52d6ec74e5ae57c71df8 to your computer and use it in GitHub Desktop.
Save Beraliv/6f3fe33d6dab52d6ec74e5ae57c71df8 to your computer and use it in GitHub Desktop.
const isEven = value => value % 2 === 0;
const isFilteredAuthor = ({ name }, { author }) => {
// if filter is not available, value is not filtered
if (author === undefined) {
return true;
}
// checks if names equal
return name === author;
};
const isFilteredDate = ({ timestamp }, { from, to }) => {
// if filter is not available, value is not filtered
if (from === undefined || to === undefined) {
return true;
}
// checks if date is within interval
return from <= timestamp && timestamp <= to;
};
const coreJs = (posts, filters) => {
let filteredPosts = [];
// iterates over posts until filtered posts have any value
for (let i = 0; i < posts.length && filteredPosts.length < 1; i++) {
const post = posts[i];
// applies filters
if (isFilteredAuthor(post, filters) && isFilteredDate(post, filters)) {
filteredPosts.push(post);
}
}
return filteredPosts;
};
const posts = [
{
name: "Lorna Stiedemann",
title: "Fugiat qui maiores illo.",
timestamp: 1534534191881
},
{
name: "Joel Will",
title: "Ea consequatur eveniet ut qui et quae voluptatem.",
timestamp: 1531221363376
},
{
name: "Quincy Vandervort",
title: "Rerum odit nemo in.",
timestamp: 1535462116340
}
];
coreJs(posts, { author: "Joel Will" }) // [{ name: 'Joel Will', title: 'Ea consequatur eveniet ut qui et quae voluptatem.', timestamp: 1531221363376 }]
coreJs(posts, { author: "Joel Will", from: 0, to: 1531221363370 }) // []
coreJs(posts, { from: 0, to: 1535462116340 }) // [{ name: 'Lorna Stiedemann', title: 'Fugiat qui maiores illo.', timestamp: 1534534191881 }]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment