JS object processing functions
Let's look on the example of some database:
We have fields "id", "destination" (where to fly), date of creation, author name, hashtags and flight.
var posts = [
{
id: '1',
destination: 'China',
createdAt: new Date(2014, -1, 1, 2, 3, 4, 567),
author: 'ChingHang',
hashTags:['Berlin'],
flug: 'A-730'
},
{
id: '2',
destination: 'Italien',
createdAt: new Date(2014, -1, 1, 2, 3, 4, 567),
author: 'PetrovPetr',
hashTags:['Minsk'],
flug: 'A-733'
},
{
id: '3',
destination: 'Spanien',
createdAt: new Date(2017, 0, 1, 2, 3, 4, 567),
author: 'IvanovaKatya',
hashTags:['Moskau'],
flug: 'A-777'
},
{
id: '4',
destination: 'Griechenland',
createdAt: new Date(2013, 0, 1, 2, 3, 4, 567),
author: 'ZaicevVasiliy',
hashTags:['Riga'],
flug: 'A-321'
},
];
The code above - our structure of masses to keep information structured.
Then we make a class, where all functions will be initialized and will be connected with our structure.
class arbeit {
(functions)
constructor(posts) {
this._posts=posts;
}
}
Getting posts with the filter (author)
getPosts(skip=0,top= 10, filterConfig){
if(filterConfig!=undefined){
let result = posts.filter(team => team.author === filterConfig.author)
return result.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()).slice(skip,skip+top);
}
else {
return posts.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()).slice(skip,skip+top);
}
}
Getting post with id
getPost(id) {
for (var i = 0; i < posts.length; i++) {
if (posts[i].id === id) {
return posts[i];
}
}
throw "No object with " + id + " id";
}
Validating object
validatePost(Object){
return Object.id != null && Object.destination != null && Object.destination.length<400
&& Object.author != null && Object.createdAt != null && typeof Object.id === "string" && typeof Object.destination === "string" && typeof Object.flug === "string"
&& typeof Object.author === "string"
}
Clearing our "database"
clear(){
posts.splice(0,posts.length);
}
Adding a new post
addPost(Object){
if(this.validatePost(Object)){
posts.splice(posts.length,0,Object);
return true;
}
else {
return false;
}
}
Editing post
editPost(id,post){
if(this.validatePost(post)){
this.getPost(id).destination=post.destination;
this.getPost(id).author=post.author;
return true;
}else {
return false;
}
}
Removing post
removePost(id){
for (var i = 0; i < posts.length; i++) {
if (posts[i].id === id) {
return posts.splice(i,1);
}
}
throw "No object with " + id + " id";
}
Explanation of these functions I will make in another article. Follow me for updates.
Good luck in your job!
Written by Yuri Filatov, IT Expert at Andersen
Leave JS object processing functions to:
Read more #programming posts
Best Posts From Stefan H.
We have not curated any of andersenlab's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From Stefan H.
- JS object processing functions
- HTML+CSS - is it worth to start?
- Dynamic problems to improve your productivity
- 5 ways to sort wisely
- Functions for string in java
- Functions in your own class
- Helpful tips for usage of string
- How to work with files? Tips for beginners
- How to work with files? Tips for beginners
- Calendar / date in java