JavaScript中高阶函数的用途是什么?
Javascript提供了许多内置函数来完成特定任务。但是,如果我们尝试使用这些内置函数正常解决任何程序,则代码可能并不简洁。Javascript还提供了一些内置的高阶函数。 这些高阶函数减少了代码的长度,增加了可读性并简化了可访问性。一些高阶函数是map,filter和reduce。让我们讨论滤波器的高阶函数。
示例
当没有高阶 函数时,程序代码可能总共要执行更多的步骤。在下面的示例中,即使提供的数组足以完成任务,也会采用新的数组。甲for循环,这是在高阶函数的情况下是不必要的,则通过阵列带到循环。
<html>
<body>
<script>
const name = [];
var persons = [
{ name: 'Frodobaggins'},
{ name: 'aragorn'},
{ name: 'gandalf'},
{ name: 'pippin'},
{ name: 'nazgul'},
];
for(let i = 0; i < persons.length; i++) {
if(persons[i].name.length > 6) {
name.push(persons[i]);
}
}
document.write(JSON.stringify(name));
</script>
</body>
</html>输出结果
[{"name":"Frodobaggins"},{"name":"aragorn"},{"name":"gandalf"}]示例
在下面的示例中,使用了 高阶 函数过滤器 。与上面的示例相比,下面的示例占用较少的代码行数。这里不采用新数组,也不使用for循环。
<html>
<body>
<script>
const persons = [
{ name: 'Frodobaggins'},
{ name: 'aragorn'},
{ name: 'gandalf'},
{ name: 'pippin'},
{ name: 'nazgul'},
];
const name = persons.filter(person => person.name.length > 7);
document.write(JSON.stringify(name));
</script>
</body>
</html>输出结果
[{"name":"Frodobaggins"}]