Ошибка ответа фильтра: неожиданная инструкция блока, окружающая тело стрелки
Я пытаюсь отфильтровать массив в реакции. Вот мой код:
resultArray = myArray.filter((item) => {
return item.children.length === 0;
});
Это дает мне ошибку eslint:Unexpected block statement surrounding arrow body
Поэтому я обменял скобки на скобки:
resultArray = myArray.filter((item) => (
return item.children.length === 0;
));
Это дает мне неожиданную ошибку токена при выделении return
,
Какой правильный способ сделать это?
2 ответа
Решение
Да, как @DanielSchneider уже говорит:
Вы можете использовать сокращенную (или также называемую лямбда) функцию стрелки следующим образом:
resultArray = myArray.filter(
item => item.children.length === 0 //this is the lambda function
);
поскольку это одно выражение и возвращаемое значение (даже если возвращаемое значение не определено), вы можете использовать функцию стрелки короткой стрелки. Он всегда будет возвращать результат выражения (даже неопределенный).
Поскольку это одно выражение, вы можете сделать следующее:
resultArray = myArray.filter((item) => item.children.length === 0);