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 Andersen

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Yuri Filatov

Yuri Filatov

IT Expert and IT Delivery Manager at Andersen