Могу ли я найти массив функций и запустить функцию поиска? - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь написать приложение, которое ищет массив функций и выполняет найденную функцию.

var search = 'test';
var valid_input_array = [
     function test(){console.log('test');},
     function abc(){console.log('abc');}
];

for (i = 0; i < valid_input_array.length; i++) {

  if (valid_input_array[i].name === search) {
    valid_input_array.search;
  }

}

Она находит функцию, но не запускает ее.

Ответы [ 2 ]

3 голосов
/ 30 марта 2019

Вам нужно вызвать найденную функцию

var search = 'test';
var valid_input_array = [function test(){console.log('test');},function abc(){console.log('abc');}];

for(i = 0; i < valid_input_array.length; i++){
   if(valid_input_array[i].name === search){
       valid_input_array[i]()
  }
}
0 голосов
/ 30 марта 2019

Вы также можете использовать Array#find()

var search = 'test';
var valid_input_array = [
      function test(){console.log('test');},
      function abc(){console.log('abc');}
];


var funcWanted = valid_input_array.find(function(fn) {
  return fn.name === search
})

// only call it if find doesn't return false
funcWanted && funcWanted()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...