TypeError: n.split не является функцией

avatar
Sherlock1996
8 августа 2021 в 18:15
190
1
1

Я написал код, он нормально работает в моем редакторе, но когда я загружаю его в codewars, я вижу код ошибки TypeError: n.split is not a function

Я попытался добавить "n.toString()" (я видел это в другом вопросе), но это не сработало. Что я сделал не так?

"use strict"
let sum = 0;
function digital_root(n) {
    n.toString();
    let arr = 
    (n).split("").map(Number);
    for(let i=0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
} 
console.log(digital_root("16"));
Источник
vanowm
8 августа 2021 в 18:18
2

n.toString(); ничего не делает, вам нужно зафиксировать возвращаемое значение: n = n.toString();

vanowm
8 августа 2021 в 18:24
0

Я только что отправил ваш код в codewars, и он отлично сработал...

Ответы (1)

avatar
Daisho Arch
8 августа 2021 в 18:20
3

На самом деле вам нужно установить n в его строковое представление.

let sum = 0;
function digital_root(n) {
    n = n.toString();
    let arr = n.split("").map(Number);
    for(let i=0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
} 
console.log(digital_root("16"));
vanowm
8 августа 2021 в 18:25
0

n уже является строкой, поэтому ничего не делает.