Я начинающий пользователь JavaScript, изучающий, как кодировать функции экологически рациональным и чистым способом. Но я столкнулся с некоторыми проблемами, и это выдает ошибку, такую как console undefined или length undefined, и я не знаю, почему это происходит так.
//objects
var lists = [{
ignore: true,
accept: true
},
{
meaning: true
}
];
var start1 = processthings(lists, start);
if (!start1) {
console.info("wrong! start it first!")
};
var dictionary1 = processthings(lists, dictionary);
if (!dictionary1) {
console.info("look it up!")
};
//comprehensive process function
function processthings(lists, cfunctions) {
for (var i = 0; i < lists.length; i++) {
if (cfunctions(lists[i])) {
return true;
};
return false;
};
};
//each function : number 1
function start(element) {
return (element.ignore == true);
};
// each functon : number 2
function dictionary(element) {
return (element.meaning);
};


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Цикл for в функции обработки никогда не будет перебирать весь список. Функция всегда будет возвращаться после первой итерации.
Я не уверен, сделано ли это намеренно или нет. Но я думаю, что функцию следует изменить, как показано ниже -
//comprehensive process function
function processthings (lists,cfunctions){
var flag = false;
for (var i=0; i< lists.length; i++){
if (cfunctions(lists[i])){
flag = true;
break;
};
};
return flag;
};
Смотрите рабочий код здесь
Нажмите «Выполнить фрагмент кода», ваш код не вызывает ошибок. Пожалуйста, отредактируйте свой вопрос таким образом, чтобы вы могли воспроизвести проблему. В противном случае мы не сможем вам помочь.