Итак, я надеюсь получить логическое значение, возвращаемое из функции стрелки и сохраненное в allThere
Чтобы сделать это, вы должны вызвать функцию. Определение и вызов функции в одно и то же время называется IIFE («встроенное вызывание» [или «немедленное вызывание»] «выражение функции»):
allThere = ((c) => {
// ^
if (!arr[0].includes(c)) {
return false
}
})()
// ^^^
но учтите, что вам нужно обработать оба случая (true и false):
allThere = ((c) => {
return !arr[0].includes(c);
})()
... которая может быть записана как краткая функция стрелки:
allThere = ((c) => !arr[0].includes(c))();
... но, разумеется, совсем не обязательно быть функцией:
allThere = !arr[0].includes(c);
(В качестве дополнительного вопроса мне интересно, есть ли способ заставить функцию стрелки возвращать значение непосредственно мутациям внешней функции (arr)).
Да, поскольку функция закрывает переменных в контексте, в котором она появляется, поэтому вы могли бы сделать:
((c) => {
if (!arr[0].includes(c)) {
allThere = false
}
})()
... но опять же, там нет никаких причин для функции.