node.js Как вывести в лог результат функции



  • Нашел функцию вычитания списков. Отрабатывает нормально (в смысле без ошибок:)), но не могу вывести в консоль переменную С
    Пишет "ReferenceError: С is not defined"

    **var A = [[FINDED_AKK_LIST]], B = [[BLACKLIST]];

    function DiffArrays(A,B)
    {
    var M = A.length, N = B.length, c = 0, C = [];
    for (var i = 0; i < M; i++)
    { var j = 0, k = 0;
    while (B[j] !== A[ i ] && j < N) j++;
    while (C[k] !== A[ i ] && k < c) k++;
    if (j == N && k == c) C[c++] = A[ i ];
    }

    return C;
    }
    console.log(С);**
    Вроде все, как в видео. С переменной С многое что делается без ошибок. Но только я пытаюсь вывести ее значение в консоль, как она сразу становится UNDEFINED. Почему???



  • @Viktor said in node.js Как ввести в лог результат функции:

    Вроде все, как в видео. С переменной С многое что делается без ошибок. Но только я пытаюсь вывести ее значение в консоль, как она сразу становится UNDEFINED. Почему???

    Переменная C это локальная переменная, и она видна только внутри тела функции. Вывести результат работы функции можешь так

    console.log(DiffArrays(A,B))
    


  • @santilo said in node.js Как вывести в лог результат функции:

    console.log(DiffArrays(A,B))

    Кажется понял. Выходит, что функция как бы и не выполняется, ее надо отдельно вызвать по отношению к чему-то. Удобно. Спасибо.



  • @Viktor потому что Вы только объявили функцию. Вот так должно работать:

    function DiffArrays(A,B)
    {
    var M = A.length, N = B.length, c = 0, C = [];
    for (var i = 0; i < M; i++)
    { var j = 0, k = 0;
    while (B[j] !== A[ i ] && j < N) j++;
    while (C[k] !== A[ i ] && k < c) k++;
    if (j == N && k == c) C[c++] = A[ i ];
    }
    
    return C;
    }
    
    [[NEW_LIST]] = DiffArrays([[FINDED_AKK_LIST]],[[BLACKLIST]])
    console.log([[NEW_LIST]])