Issue 1:
The "JQurey's $.getJSON" link in the Zipline's, instead of opening the getJSON document, link to the $.each document.

Issue 2:
Issue Description

I've compiled a few thoughts of what I think could be improved for the "Create a Set"-challenges of the "Coding Interview Data Structure Questions" section. See the comments in the code below (which FYI, was the solution I created when working through them).

This is partially covered by #13312 and #13303, but I felt that these suggestions were to much to just be a comment of any of those issues.

// NOTE: This code should probably not be used to update the challengeSeed.
// However, it demonstrates some of the issues.

class Set {
// TODO: Add the requirement that the constructor should handle input.
// It should be possible to create a new set based on an array of items,
// where duplicates gets removed.
constructor (items = []) {
this._set = []

for (const x of items) {
this.add(x)
}
}

has (x) {
return this._set.includes(x)
}

values () {
// TODO: Make sure a copy is returned
// As JS objects always are passed by reference, returning out
// internal store would allow external code to mutate our private state.
// Because of this, we need to return a copy.
return this._set.slice()
}

add (x) {
// TODO: improve tests - ensure boolean status is returned
// At least to increase concistency, as some challenges have seed code
// returning booleans, even though previous challenges doesn't test for it.
if (this.has(x)) return false

this._set.push(x)
return true
}

remove (x) {
// TODO: improve tests - ensure boolean status is returned
// At least to increase concistency, as some challenges have seed code
// returning booleans, even though previous challenges doesn't test for it.
if (!this.has(x)) return false

this._set.splice(this._set.indexOf(x), 1)
return true
}

size () {
return this._set.length
}

union (other) {
// TODO: We should encourage the use of pure methods
// that return a result rather than modifying the input.
// Returning a new set would be a solution for this.
return new Set(
this._set.concat(other.values())
)
}

intersection (other) {
// TODO: Check for missing `)`
// https://github.com/freeCodeCamp/freeCodeCamp/blob/staging/seed/challenges/08-coding-interview-questions-and-take-home-assignments/coding-interview-data-structure-questions.json#L462-L463
const values = other.values()
const common = this._set.filter(x => values.includes(x))
.concat(values.filter(x => this._set.includes(x)))
return new Set(common)
}

difference (other) {
// TODO: Check for missing `)`
// https://github.com/freeCodeCamp/freeCodeCamp/blob/staging/seed/challenges/08-coding-interview-questions-and-take-home-assignments/coding-interview-data-structure-questions.json#L538-L539
const values = other.values()
const diff = this._set.filter(x => !values.includes(x))
.concat(values.filter(x => !this._set.includes(x)))

return new Set(diff)
}

subset (other) {
// TODO: Check for missing `)`
// https://github.com/freeCodeCamp/freeCodeCamp/blob/staging/seed/challenges/08-coding-interview-questions-and-take-home-assignments/coding-interview-data-structure-questions.json#L625-L626
return other.values()
.every(x => this._set.includes(x))
}
}

What do you think of these suggested changes? 😊