Javascript 在这个数组的高阶函数中,我做错了什么?JS

Javascript 在这个数组的高阶函数中,我做错了什么?JS,javascript,arrays,functional-programming,Javascript,Arrays,Functional Programming,所以,我在学习高阶函数,做练习等等。我需要返回长度小于6个字符的原始数组输入元素的结果。但我想我把语法搞错了。我不知道如何用高阶函数实现这一点。帮忙 var课程=[微积分,cs17,litr0100,英语]; 减少(函数(){ courses.filter(courses=>courses.length>6); 返回课程; })我做错了什么 var courses = [calculus,cs17,litr0100,engn]; // ^ unless these ar

所以,我在学习高阶函数,做练习等等。我需要返回长度小于6个字符的原始数组输入元素的结果。但我想我把语法搞错了。我不知道如何用高阶函数实现这一点。帮忙

var课程=[微积分,cs17,litr0100,英语];
减少(函数(){
courses.filter(courses=>courses.length>6);
返回课程;
})
我做错了什么

var courses = [calculus,cs17,litr0100,engn];
//             ^ unless these are variables this will fail
//  use let or const

reduce(function() {
// javascript does not know a reduce function
// the reducer (lambda) function has no parameters
    courses.filter(courses => courses.length > 6);
//                 ^ should be 'course' or something else then 'courses' 
//  filtering with the right syntax would've been sufficient
    return courses;
})
所以

const courses=“微积分,cs17,litr0100,英语”。拆分(“,”;
const coursesFiltered=courses.filter(course=>course.length>6);
//^将筛选后的数组分配给其他数组
//Array.filter不会改变(更改)原始值
控制台日志(课程);

控制台日志(coursesFiltered)
filter
不会变异原始对象-返回
的结果。filter
相反JavaScript中默认情况下也没有独立的
reduce
函数。使用忽略其参数的函数调用
reduce
有什么意义?事实上,如果你想要的只是
filter
的结果,那么调用
reduce
有什么意义呢;我不知道是JS拍的。我要换衣服it@Jabrah你的功能是什么?奇怪的是,它把一个没有副作用的0-arity函数作为它的唯一参数。