Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="description" content="validateKeys_drill">
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width">
- <title>JS Bin</title>
- </head>
- <body>
- <script id="jsbin-javascript">
- var objectA = {
- id: 2,
- name: 'Jane Doe',
- age: 34,
- city: 'Chicago'
- }
- var objectB = {
- id: 3,
- age: 33,
- city: 'Peoria'
- }
- var objectC = {
- id: 9,
- name: 'Billy Bear',
- age: 62,
- city: 'Milwaukee',
- status: 'paused'
- }
- var expectedKeys = [
- 'id', 'name', 'age', 'city'
- ];
- function validateKeys(object, expectedKeys) {
- if (Object.keys(object).length !== expectedKeys.length) {
- return false;
- }
- for (var i; i<expectedKeys.length; i++) {
- if (!Object.keys(object).find(function(key) {
- return key === expectedKeys[i];
- })) {
- return false;
- }
- }
- //(.map way that i was working on)
- // var keys = Object.keys(object);
- // var exists = keys.find()
- // for(var k = 0; k<keys.length; k++) {
- // keys[k]
- // }
- //*from here down is test
- return true;
- }
- function testIt() {
- var objectA = {
- id: 2,
- name: 'Jane Doe',
- age: 34,
- city: 'Chicago'
- }
- var objectB = {
- id: 3,
- age: 33,
- city: 'Peoria'
- }
- var objectC = {
- id: 9,
- name: 'Billy Bear',
- age: 62,
- city: 'Milwaukee',
- status: 'paused'
- }
- var expectedKeys = [
- 'id', 'name', 'age', 'city'
- ];
- if (typeof validateKeys(objectA, expectedKeys) !== 'boolean') {
- console.error(
- 'FAILURE: `validateKeys` should return a boolean value');
- return;
- }
- if (!validateKeys(objectA, expectedKeys)) {
- console.error(
- 'FAILURE: running `validateKeys` with the following object and keys ' +
- 'should return `true` but returned `false`:\n' +
- objectA + '\n' + expectedKeys
- )
- return;
- }
- if (validateKeys(objectB, expectedKeys)) {
- console.error(
- 'FAILURE: running `validateKeys` with the following object and keys ' +
- 'should return `false` but returned `true`:\n' +
- objectB + '\n' + expectedKeys
- );
- }
- if (validateKeys(objectC, expectedKeys)) {
- console.error(
- 'FAILURE: running `validateKeys` with the following object and keys ' +
- 'should return `false` but returned `true`:\n' +
- objectC + '\n' + expectedKeys
- );
- }
- console.log('SUCCESS: `validateKeys` is working');
- }
- testIt()
- </script>
- <script id="jsbin-source-javascript" type="text/javascript">var objectA = {
- id: 2,
- name: 'Jane Doe',
- age: 34,
- city: 'Chicago'
- }
- var objectB = {
- id: 3,
- age: 33,
- city: 'Peoria'
- }
- var objectC = {
- id: 9,
- name: 'Billy Bear',
- age: 62,
- city: 'Milwaukee',
- status: 'paused'
- }
- var expectedKeys = [
- 'id', 'name', 'age', 'city'
- ];
- function validateKeys(object, expectedKeys) {
- if (Object.keys(object).length !== expectedKeys.length) {
- return false;
- }
- for (var i; i<expectedKeys.length; i++) {
- if (!Object.keys(object).find(function(key) {
- return key === expectedKeys[i];
- })) {
- return false;
- }
- }
- //(.map way that i was working on)
- // var keys = Object.keys(object);
- // var exists = keys.find()
- // for(var k = 0; k<keys.length; k++) {
- // keys[k]
- // }
- //*from here down is test
- return true;
- }
- function testIt() {
- var objectA = {
- id: 2,
- name: 'Jane Doe',
- age: 34,
- city: 'Chicago'
- }
- var objectB = {
- id: 3,
- age: 33,
- city: 'Peoria'
- }
- var objectC = {
- id: 9,
- name: 'Billy Bear',
- age: 62,
- city: 'Milwaukee',
- status: 'paused'
- }
- var expectedKeys = [
- 'id', 'name', 'age', 'city'
- ];
- if (typeof validateKeys(objectA, expectedKeys) !== 'boolean') {
- console.error(
- 'FAILURE: `validateKeys` should return a boolean value');
- return;
- }
- if (!validateKeys(objectA, expectedKeys)) {
- console.error(
- 'FAILURE: running `validateKeys` with the following object and keys ' +
- 'should return `true` but returned `false`:\n' +
- objectA + '\n' + expectedKeys
- )
- return;
- }
- if (validateKeys(objectB, expectedKeys)) {
- console.error(
- 'FAILURE: running `validateKeys` with the following object and keys ' +
- 'should return `false` but returned `true`:\n' +
- objectB + '\n' + expectedKeys
- );
- }
- if (validateKeys(objectC, expectedKeys)) {
- console.error(
- 'FAILURE: running `validateKeys` with the following object and keys ' +
- 'should return `false` but returned `true`:\n' +
- objectC + '\n' + expectedKeys
- );
- }
- console.log('SUCCESS: `validateKeys` is working');
- }
- testIt()</script></body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement