-
Notifications
You must be signed in to change notification settings - Fork 49
/
Copy path5kyu_PrefillAnArray.js
32 lines (21 loc) · 1.04 KB
/
5kyu_PrefillAnArray.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 5kyu - Prefill an Array
// Create the function prefill that returns an array of n elements that all have the
// same value v. See if you can do this without using a loop.
// You have to validate input:
// v can be anything (primitive or otherwise)
// if v is ommited, fill the array with undefined
// if n is 0, return an empty array
// if n is anything other than an integer or integer-formatted string (e.g. '123') that is >=0, throw a TypeError
// When throwing a TypeError, the message should be n is invalid, where you replace n for the actual value passed to the function.
// Code Examples
// prefill(3,1) --> [1,1,1]
// prefill(2,"abc") --> ['abc','abc']
// prefill("1", 1) --> [1]
// prefill(3, prefill(2,'2d'))
// --> [['2d','2d'],['2d','2d'],['2d','2d']]
// prefill("xyz", 1)
// --> throws TypeError with message "xyz is invalid"
function prefill(n, v){
if (parseInt(n) !== Math.abs(n)) { throw new TypeError(`${n} is invalid`); }
return Array.apply(null, Array(+n)).map(function (d,i) { return v });
}