fix(curriculum): record collection challenge - variable names shouldn't be keywords (#41904)
* style - update record collection challenge, variables shouldn't be name after keywords * minor - typo fix * Apply suggestions from code review Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com> Co-authored-by: Shaun Hamilton <51722130+ShaunSHamilton@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
3fbe1ebc05
commit
6ae186a8cf
@ -8,21 +8,21 @@ dashedName: record-collection
|
|||||||
|
|
||||||
# --description--
|
# --description--
|
||||||
|
|
||||||
You are given a JSON object representing a part of your musical album collection. Each album has a unique id number as its key and several other properties. Not all albums have complete information.
|
You are given an object literal representing a part of your musical album collection. Each album has a unique id number as its key and several other properties. Not all albums have complete information.
|
||||||
|
|
||||||
You start with an `updateRecords` function that takes an object like `collection`, an `id`, a `prop` (like `artist` or `tracks`), and a `value`. Complete the function using the rules below to modify the object passed to the function.
|
You start with an `updateRecords` function that takes an object literal, `records`, containing the musical album collection, an `id`, a `prop` (like `artist` or `tracks`), and a `value`. Complete the function using the rules below to modify the object passed to the function.
|
||||||
|
|
||||||
- Your function must always return the entire object.
|
- Your function must always return the entire record collection object.
|
||||||
- If `prop` isn't `tracks` and `value` isn't an empty string, update or set that album's `prop` to `value`.
|
- If `prop` isn't `tracks` and `value` isn't an empty string, update or set that album's `prop` to `value`.
|
||||||
- If `prop` is `tracks` but the album doesn't have a `tracks` property, create an empty array and add `value` to it.
|
- If `prop` is `tracks` but the album doesn't have a `tracks` property, create an empty array and add `value` to it.
|
||||||
- If `prop` is `tracks` and `value` isn't an empty string, add `value` to the end of the album's existing `tracks` array.
|
- If `prop` is `tracks` and `value` isn't an empty string, add `value` to the end of the album's existing `tracks` array.
|
||||||
- If `value` is an empty string, delete the given `prop` property from the album.
|
- If `value` is an empty string, delete the given `prop` property from the album.
|
||||||
|
|
||||||
**Note:** A copy of the `collection` object is used for the tests.
|
**Note:** A copy of the `recordCollection` object is used for the tests.
|
||||||
|
|
||||||
# --hints--
|
# --hints--
|
||||||
|
|
||||||
After `updateRecords(collection, 5439, "artist", "ABBA")`, `artist` should be the string `ABBA`
|
After `updateRecords(recordCollection, 5439, "artist", "ABBA")`, `artist` should be the string `ABBA`
|
||||||
|
|
||||||
```js
|
```js
|
||||||
assert(
|
assert(
|
||||||
@ -31,7 +31,7 @@ assert(
|
|||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
After `updateRecords(collection, 5439, "tracks", "Take a Chance on Me")`, `tracks` should have the string `Take a Chance on Me` as the last element.
|
After `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` should have the string `Take a Chance on Me` as the last element.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
assert(
|
assert(
|
||||||
@ -41,14 +41,14 @@ assert(
|
|||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
After `updateRecords(collection, 2548, "artist", "")`, `artist` should not be set
|
After `updateRecords(recordCollection, 2548, "artist", "")`, `artist` should not be set
|
||||||
|
|
||||||
```js
|
```js
|
||||||
updateRecords(_recordCollection, 2548, 'artist', '');
|
updateRecords(_recordCollection, 2548, 'artist', '');
|
||||||
assert(!_recordCollection[2548].hasOwnProperty('artist'));
|
assert(!_recordCollection[2548].hasOwnProperty('artist'));
|
||||||
```
|
```
|
||||||
|
|
||||||
After `updateRecords(collection, 1245, "tracks", "Addicted to Love")`, `tracks` should have the string `Addicted to Love` as the last element.
|
After `updateRecords(recordCollection, 1245, "tracks", "Addicted to Love")`, `tracks` should have the string `Addicted to Love` as the last element.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
assert(
|
assert(
|
||||||
@ -58,7 +58,7 @@ assert(
|
|||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
After `updateRecords(collection, 2468, "tracks", "Free")`, `tracks` should have the string `1999` as the first element.
|
After `updateRecords(recordCollection, 2468, "tracks", "Free")`, `tracks` should have the string `1999` as the first element.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
assert(
|
assert(
|
||||||
@ -68,14 +68,14 @@ assert(
|
|||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
After `updateRecords(collection, 2548, "tracks", "")`, `tracks` should not be set
|
After `updateRecords(recordCollection, 2548, "tracks", "")`, `tracks` should not be set
|
||||||
|
|
||||||
```js
|
```js
|
||||||
updateRecords(_recordCollection, 2548, 'tracks', '');
|
updateRecords(_recordCollection, 2548, 'tracks', '');
|
||||||
assert(!_recordCollection[2548].hasOwnProperty('tracks'));
|
assert(!_recordCollection[2548].hasOwnProperty('tracks'));
|
||||||
```
|
```
|
||||||
|
|
||||||
After `updateRecords(collection, 1245, "albumTitle", "Riptide")`, `albumTitle` should be the string `Riptide`
|
After `updateRecords(recordCollection, 1245, "albumTitle", "Riptide")`, `albumTitle` should be the string `Riptide`
|
||||||
|
|
||||||
```js
|
```js
|
||||||
assert(
|
assert(
|
||||||
@ -115,7 +115,7 @@ const _recordCollection = {
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
// Setup
|
// Setup
|
||||||
var collection = {
|
var recordCollection = {
|
||||||
2548: {
|
2548: {
|
||||||
albumTitle: 'Slippery When Wet',
|
albumTitle: 'Slippery When Wet',
|
||||||
artist: 'Bon Jovi',
|
artist: 'Bon Jovi',
|
||||||
@ -136,17 +136,17 @@ var collection = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Only change code below this line
|
// Only change code below this line
|
||||||
function updateRecords(object, id, prop, value) {
|
function updateRecords(records, id, prop, value) {
|
||||||
return object;
|
return records;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateRecords(collection, 5439, 'artist', 'ABBA');
|
updateRecords(recordCollection, 5439, 'artist', 'ABBA');
|
||||||
```
|
```
|
||||||
|
|
||||||
# --solutions--
|
# --solutions--
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var collection = {
|
var recordCollection = {
|
||||||
2548: {
|
2548: {
|
||||||
albumTitle: 'Slippery When Wet',
|
albumTitle: 'Slippery When Wet',
|
||||||
artist: 'Bon Jovi',
|
artist: 'Bon Jovi',
|
||||||
@ -167,15 +167,15 @@ var collection = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Only change code below this line
|
// Only change code below this line
|
||||||
function updateRecords(object, id, prop, value) {
|
function updateRecords(records, id, prop, value) {
|
||||||
if (value === '') delete object[id][prop];
|
if (value === '') delete records[id][prop];
|
||||||
else if (prop === 'tracks') {
|
else if (prop === 'tracks') {
|
||||||
object[id][prop] = object[id][prop] || [];
|
records[id][prop] = records[id][prop] || [];
|
||||||
object[id][prop].push(value);
|
records[id][prop].push(value);
|
||||||
} else {
|
} else {
|
||||||
object[id][prop] = value;
|
records[id][prop] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return object;
|
return records;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user