题解 | #移除数组中的元素# 附 filter箭头函数注意

移除数组中的元素

https://www.nowcoder.com/practice/edbc7496a36e433c89d298b9256af856

{"html":"<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"UTF-8\">\n    <style>\n       /* 填写样式 */\n    </style>\n</head>\n\n<body>\n    <!-- 填写标签 -->\n    <script type=\"text/javascript\">\n        // 填写JavaScript\n        function remove(arr, item) {\n       let res = arr.filter(element =>           element !== item\n            )\n\n        return res\n\n}\n    </script>\n</body>\n\n</html>","css":"","js":""}

这是一个很好的问题。在 JavaScript 中,箭头函数有两种不同的语法形式,它们的行为有所不同。让我们详细解释一下这两种形式的区别。

箭头函数的基本形式

  1. 简洁形式:在这种形式中,箭头函数的主体是一个表达式,该表达式的返回值会自动成为函数的返回值。例如:这里,element !== item 是一个表达式,它的结果(布尔值)会自动返回。
  2. 块形式:在这种形式中,箭头函数的主体是一个代码块(用大括号 {} 包围)。在这种情况下,你需要显式地使用 return 关键字来返回值。例如:

问题分析

当你将 element => element !== item 改成 element => { element !== item } 时,发生了什么?

  • 简洁形式:这里,element !== item 是一个表达式,它的结果会自动返回。因此,filter 方法会正确地过滤掉所有等于 item 的元素。
  • 块形式:这里,{ element !== item } 是一个代码块,而不是一个表达式。在代码块中,element !== item 被计算为一个布尔值,但这个布尔值不会自动返回。因此,filter 方法会认为每个元素的回调函数返回值是 undefined,而 undefined 被视为 false,所以没有任何元素会被保留。

正确的块形式

为了使块形式的箭头函数返回正确的值,你需要显式地使用 return 关键字:

element => { return element !== item; }

完整示例

function removeItems(arr, item) {
    return arr.filter(element => { return element !== item; });
}

// 测试代码
const inputArray = [1, 2, 3, 4, 2];
const itemToRemove = 2;
const resultArray = removeItems(inputArray, itemToRemove);

console.log(resultArray); // 输出:[1, 3, 4]

总结

  • 简洁形式element => expression,表达式的返回值会自动成为函数的返回值。
  • 块形式element => { statement },需要显式地使用 return 关键字来返回值。

全部评论

相关推荐

01-20 10:59
中北大学 运营
juntenor:这是详历,可不是简历
点赞 评论 收藏
分享
漂亮的海豚在炒股:把西电加粗
点赞 评论 收藏
分享
如题,鼠鼠快碎掉了。鼠鼠正在投暑期和日常的实习,可能是因为简历太差吧,好多初筛都没有过,所以其实格外珍惜每一次的约面。尤其鼠鼠是八股选手,但凡碰到喜欢问项目的面试官是直接速通鼠掉。那是一个万里无云的晚上,鼠鼠接到tx某子公司的约面,虽然没算法题但是问得我汗流浃背,面试官从我的八股批判到我的项目继而批判到我的实习,感觉基本上除了八股这种特定答案之外每一个问题都要质问我,尤其是询问到实习的时候我解释完之后直接来了一句“那你实习也啥也没做啊”,鼠鼠直接原地碎掉。之后的问题鼠鼠也不太记得了,大部分都是直接吟诵咒语,肌肉记忆直接不过脑子。因为接二连三的压力鼠鼠直接摆烂了,回答的时候也不太看屏幕直接开始搓...
机器人为什么是猫呀:楼主要自信。好的面试官是会照顾面试者情绪的,不会直接说那么伤人的话。面试表现其实很看自己的心态跟情绪,这些又和面试官的反馈很相关。而且有些面试官很高傲,不求甚解,自认为你的东西看一眼很简单,就不会听你说了,却没有从一个没有丰富工作经验的人的角度去思考。楼主不要因为这些影响心态,不要怀疑自己,只要遇到一个“合适”的面试官就会好很多的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务