Suggesting the removal of "-" on line 29 in the description, as the comma before "such" is sufficient to separate the examples from the rest of the sentence.
3.0 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
id | title | challengeType | videoUrl | forumTopicId | dashedName |
---|---|---|---|---|---|
56bbb991ad1ed5201cd392d0 | Build JavaScript Objects | 1 | https://scrimba.com/c/cWGkbtd | 16769 | build-javascript-objects |
--description--
You may have heard the term object
before.
Objects are similar to arrays
, except that instead of using indexes to access and modify their data, you access the data in objects through what are called properties
.
Objects are useful for storing data in a structured way, and can represent real world objects, like a cat.
Here's a sample cat object:
var cat = {
"name": "Whiskers",
"legs": 4,
"tails": 1,
"enemies": ["Water", "Dogs"]
};
In this example, all the properties are stored as strings, such as name
, legs
, and tails
. However, you can also use numbers as properties. You can even omit the quotes for single-word string properties, as follows:
var anotherObject = {
make: "Ford",
5: "five",
"model": "focus"
};
However, if your object has any non-string properties, JavaScript will automatically typecast them as strings.
--instructions--
Make an object that represents a dog called myDog
which contains the properties name
(a string), legs
, tails
and friends
.
You can set these object properties to whatever values you want, as long as name
is a string, legs
and tails
are numbers, and friends
is an array.
--hints--
myDog
should contain the property name
and it should be a string
.
assert(
(function (z) {
if (
z.hasOwnProperty('name') &&
z.name !== undefined &&
typeof z.name === 'string'
) {
return true;
} else {
return false;
}
})(myDog)
);
myDog
should contain the property legs
and it should be a number
.
assert(
(function (z) {
if (
z.hasOwnProperty('legs') &&
z.legs !== undefined &&
typeof z.legs === 'number'
) {
return true;
} else {
return false;
}
})(myDog)
);
myDog
should contain the property tails
and it should be a number
.
assert(
(function (z) {
if (
z.hasOwnProperty('tails') &&
z.tails !== undefined &&
typeof z.tails === 'number'
) {
return true;
} else {
return false;
}
})(myDog)
);
myDog
should contain the property friends
and it should be an array
.
assert(
(function (z) {
if (
z.hasOwnProperty('friends') &&
z.friends !== undefined &&
Array.isArray(z.friends)
) {
return true;
} else {
return false;
}
})(myDog)
);
myDog
should only contain all the given properties.
assert(
(function (z) {
return Object.keys(z).length === 4;
})(myDog)
);
--seed--
--after-user-code--
(function(z){return z;})(myDog);
--seed-contents--
var myDog = {
// Only change code below this line
// Only change code above this line
};
--solutions--
var myDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
};