Skip to content Skip to sidebar Skip to footer

Using Array.map With Repeat In Javascript

Hello I have the following: var a = [1, 2, 3] I would like to update this array to: a = [11,22,33] I am trying to do something like a.map(repeat(2)); but it results in an err

Solution 1:

You could convert the number to string, repeat the value and convert it back to number.

var a = [1, 2, 3]
a = a.map(a => +a.toString().repeat(2));

console.log(a);

Solution 2:

Given that you seem to be looking for repeating the digits, use strings for that. Which have a handy repeat method for this purpose:

a.map(x =>Number(String(x).repeat(2))));

If you want to use your notation, you need to make a higher-order repeat function that returns another function to be used as the map callback:

functionrepeat(times) {
    returnx =>String(x).repeat(times);
}
a.map(repeat(2)).map(Number)

Solution 3:

Yes that is possible. You can define repeat as a function that returns a function:

functionrepeat(times) {
    returnfunction (value) {
        return +String(value).repeat(times);
    }
}

// Your code:var a = [1, 2, 3];
var result = a.map(repeat(2));
console.log(result);

The map method expects a function as argument, so the call to repeat(2) should return a function. That (inner) function uses String#repeat after converting the value to string, and then converts the result back to number with the unary +.

Solution 4:

Here you go, number version and string version

constdoubleIt = n => Number(`${n}${n}`);

const arr = [1, 2, 3, 55];
const strArr = arr.map(o =>`${o}${o}`);
const numArr = arr.map(o => o * 11);
const numFromStringsArr = arr.map(o =>doubleIt(o));

console.log(strArr);
console.log(numArr);
console.log(numFromStringsArr);

Solution 5:

You can create an array of N .length with Array(), use Array.prototype.fill() to fill the created array with current element of .map() callback, chain Array.prototype.join() with "" as parameter, use + operator to convert string to number

var a = [1, 2, 3], n = 2;
a = a.map(el => +Array(n).fill(el).join(""));
console.log(a);

Post a Comment for "Using Array.map With Repeat In Javascript"