Not exactly sure, what your function is doing or what arguments it’s supposed to take, but you could use a Self-Executing Anonymous Function aka IIFE (Immediately Invoked Function Expression).

Let’s start by formatting what you currently have:

```
const digPow = (n, p) => Number.isInteger(
("" + n)
.split("")
.map((num, index) => Math.pow(parseInt(num), (p + index)))
.reduce((a, b) => a + b, 0) / n
)
? ("" + n)
.split("")
.map((num, index) => Math.pow(parseInt(num), (p + index)))
.reduce((a, b) => a + b, 0) / n
: -1;
console.log(digPow(6, 3)); // 36
```

It looks like this part is inside the condition and also a return if the result is an integer:

```
("" + n)
.split("")
.map((num, index) => Math.pow(parseInt(num), (p + index)))
.reduce((a, b) => a + b, 0) / n
```

You can reduce your logic to the following (pseudo-code):

```
const digPow = (x => Number.isInteger(x) ? x : -1)(split/map/reduce/divide);
```

Let’s pass that into an IIFE:

```
const digPow = (n, p) => (
(value) => Number.isInteger(value) ? value : -1)
(("" + n)
.split("")
.map((num, index) => Math.pow(parseInt(num), (p + index)))
.reduce((a, b) => a + b, 0) / n);
console.log(digPow(6, 3)); // 36
```

CLICK HERE to find out more related problems solutions.