* feat(tools): add seed/solution restore script * chore(curriculum): remove empty sections' markers * chore(curriculum): add seed + solution to Chinese * chore: remove old formatter * fix: update getChallenges parse translated challenges separately, without reference to the source * chore(curriculum): add dashedName to English * chore(curriculum): add dashedName to Chinese * refactor: remove unused challenge property 'name' * fix: relax dashedName requirement * fix: stray tag Remove stray `pre` tag from challenge file. Signed-off-by: nhcarrigan <nhcarrigan@gmail.com> Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
2.6 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7b7b367417b2b2512b14 | Check For The Presence of an Element With indexOf() | 1 | 301154 | check-for-the-presence-of-an-element-with-indexof |
--description--
Since arrays can be changed, or mutated, at any time, there's no guarantee about where a particular piece of data will be on a given array, or if that element even still exists. Luckily, JavaScript provides us with another built-in method, indexOf()
, that allows us to quickly and easily check for the presence of an element on an array. indexOf()
takes an element as a parameter, and when called, it returns the position, or index, of that element, or -1
if the element does not exist on the array.
For example:
let fruits = ['apples', 'pears', 'oranges', 'peaches', 'pears'];
fruits.indexOf('dates'); // returns -1
fruits.indexOf('oranges'); // returns 2
fruits.indexOf('pears'); // returns 1, the first index at which the element exists
--instructions--
indexOf()
can be incredibly useful for quickly checking for the presence of an element on an array. We have defined a function, quickCheck
, that takes an array and an element as arguments. Modify the function using indexOf()
so that it returns true
if the passed element exists on the array, and false
if it does not.
--hints--
The quickCheck
function should return a boolean (true
or false
), not a string ("true"
or "false"
)
assert.isBoolean(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
quickCheck(["squash", "onions", "shallots"], "mushrooms")
should return false
assert.strictEqual(
quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'),
false
);
quickCheck(["onions", "squash", "shallots"], "onions")
should return true
assert.strictEqual(
quickCheck(['onions', 'squash', 'shallots'], 'onions'),
true
);
quickCheck([3, 5, 9, 125, 45, 2], 125)
should return true
assert.strictEqual(quickCheck([3, 5, 9, 125, 45, 2], 125), true);
quickCheck([true, false, false], undefined)
should return false
assert.strictEqual(quickCheck([true, false, false], undefined), false);
The quickCheck
function should utilize the indexOf()
method
assert.notStrictEqual(quickCheck.toString().search(/\.indexOf\(/), -1);
--seed--
--seed-contents--
function quickCheck(arr, elem) {
// Only change code below this line
// Only change code above this line
}
console.log(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
--solutions--
function quickCheck(arr, elem) {
return arr.indexOf(elem) >= 0;
}