[Guide] Data Structures: Create a Set Class (#34434)

* feat: added solution

* fix: solution

* fix: changed expression to be be more readable

* fix: formatting
This commit is contained in:
Aditya 2018-11-25 23:26:33 +05:30 committed by Christopher McCormack
parent 9fb1d9f49c
commit c3155c4f5b
2 changed files with 37 additions and 4 deletions

View File

@ -70,7 +70,18 @@ function Set() {
```js
function Set() {var collection = []; this.has = function(e){return(collection.indexOf(e) !== -1);};this.values = function() {return collection;};this.add = function(element) {if (!this.has(element)) {collection.push(element);return true;} else {return false;}};}
function Set() {
var collection = [];
this.has = function(element) {
return (collection.indexOf(element) !== -1);
};
this.values = function() {
return collection;
};
this.add = function(el) {
return this.has(el) ? false : Boolean(collection.push(el));
}
}
```
</section>

View File

@ -3,8 +3,30 @@ title: Create a Set Class
---
## Create a Set Class
This is a stub. <a href='https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/coding-interview-prep/data-structures/create-a-set-class/index.md' target='_blank' rel='nofollow'>Help our community expand it</a>.
### Method:
- A Set is an abstract data structure.
- It can store unique value and the collection is unordered.
- In this challenge, we have to implement `.add()` method. This method should only add unique values to `collection`.
- The method should return `true`, if the value is sucessfully added to the collection, otherwise it should return `false`.
<a href='https://github.com/freecodecamp/guides/blob/master/README.md' target='_blank' rel='nofollow'>This quick style guide will help ensure your pull request gets accepted</a>.
### Solution:
```js
function Set() {
// the var collection will hold our set
var collection = [];
// this method will check for the presence of an element and return true or false
this.has = function(element) {
return (collection.indexOf(element) !== -1);
};
// this method will return all the values in the set
this.values = function() {
return collection;
};
this.add = function(el) {
return this.has(el) ? false : Boolean(collection.push(el));
}
}
```
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
### Resources:
- [Wikipedia](https://en.wikipedia.org/wiki/Set_(abstract_data_type))