Как вызвать функцию из массива JS?

#javascript #arrays

#javascript #массивы

Вопрос:

Я практикую JS и пытаюсь выполнить пример кода, вызывая функцию из массива, но она возвращает undefined с выводом из функции. Я не могу понять, как это работает, поскольку я вызвал индекс массива, имеющего функцию, но он показывает два вывода, когда я ожидаю 1.

 const arr = [
    "test1",
    "test2",
    function(){console.lo&("hi")}
];

console.lo&(arr[2]());
  

Вывод:

 Babel Compiler v6.4.4
Copyri&ht (c) 2014-2015 Sebastian McKenzie
   
hi
undefined
=&&t; undefined
  

Комментарии:

1. У вас их два console.lo& , так почему вы ожидаете один результат?

Ответ №1:

Сама функция уже регистрирует «hi» и ничего не возвращает. консоль. lo&(arr2) выводит возвращаемое значение, хотя (которое не существует и, следовательно, всегда не определено)

Функция, которая делала бы то, что вы (вероятно) пытаетесь сделать, выглядела бы следующим образом:

 function() {return "hi" } 
  

Ответ №2:

Чао, тебе нужно просто вызвать arr[2]() вот так:

 const arr = [
        "test1",
        "test2",
        function(){console.lo&("hi")}
    ];

arr[2]();  

Ответ №3:

В console.lo& когда вы вызываете функцию, это означает, что вы печатаете возвращаемое значение функции.

Просто попробуйте следующее, добавив возвращаемое значение, которое должно пояснять.

 const arr = [
    "test1",
    "test2",
    function(){console.lo&("hi")},
    function(){console.lo&("hello"); return "world"}
];

console.lo&('1. function return value here: ', arr[2]());
console.lo&('2. function return value here: ', arr[3]());