Help with JSON and JavaScript...I have the other files but I only need help on t
ID: 3862542 • Letter: H
Question
Help with JSON and JavaScript...I have the other files but I only need help on this. Let me know if you want to see the rest.
1. Add code to the getContacts method that creates a function named reviver. Code the reviver method so it adds dashes back to regular phone numbers (7 characters), phone numbers with area codes (10 characters), and phone numbers with 1 + area code (11 characters). Then, use the reviver function with the parse method.
2. add code to the setContacts method that creates a function named replacer. Code the replacer function so it strips all non-numeric characters from the phone number value. Then, use the replacer function with the stringify method.
"use strict";
var storage = {
keyContacts: "contacts_1",
getContacts: function() {
// get string from local storage
var storageString = localStorage.getItem(this.keyContacts) || null;
// convert string to JavaScript object and return, or return empty array if string is null
return JSON.parse(storageString) || [];
},
setContacts: function(value) {
// convert JavaScript object to string
var storageString = JSON.stringify(value);
// store string in local storage
localStorage.setItem(this.keyContacts, storageString);
},
clearContacts: function() {
localStorage.setItem(this.keyContacts, "");
}
};
Explanation / Answer
var Types = {}; function MyClass(foo, bar) { this._foo = foo; this._bar = bar; } Types.MyClass = MyClass; MyClass.prototype.getFoo = function() { return this._foo; } // Method which will provide a JSON.stringifiable object MyClass.prototype.toJSON = function() { return { __type: 'MyClass', foo: this._foo, bar: this._bar }; }; // Method that can deserialize JSON into an instance MyClass.revive = function(data) { // TODO: do basic validation return new MyClass(data.foo, data.bar); }; var instance = new MyClass('blah', 'blah'); // JSON obtained by stringifying an instance var json = JSON.stringify(instance); // "{"__type":"MyClass","foo":"blah","bar":"blah"}"; var obj = JSON.parse(json, function(key, value) { return key === '' && value.hasOwnProperty('__type') ? Types[value.__type].revive(value) : this[key]; }); obj.getFoo(); // blah
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.