为什么';t Array.filter()方法仅适用于arrow函数,而不是Javascript中的传统函数?

为什么';t Array.filter()方法仅适用于arrow函数,而不是Javascript中的传统函数?,javascript,arrays,Javascript,Arrays,我尝试运行一个简单的测试: var数组=[“测试”、“测试”、“香蕉”] var result=array.filter(函数(word){word.includes(“test”)}) console.log(result)它确实有效,您只需返回结果: var数组=[“测试”、“测试”、“香蕉”] var result=array.filter(函数(字){ 返回单词。包括(“测试”) }) console.log(result)如果过滤器中的函数不返回true,则不会填充数组。您必须根据

我尝试运行一个简单的测试:

var数组=[“测试”、“测试”、“香蕉”]
var result=array.filter(函数(word){word.includes(“test”)})

console.log(result)
它确实有效,您只需
返回结果:

var数组=[“测试”、“测试”、“香蕉”]
var result=array.filter(函数(字){
返回单词。包括(“测试”)
})

console.log(result)
如果过滤器中的函数不返回true,则不会填充数组。您必须根据值是否为真/假返回一个值。数组将由筛选器填充

var数组=[“测试”、“测试”、“香蕉”]
var result=array.filter(函数(字){return word.includes(“test”)})
console.log(result)
使用块(
{}
)定义箭头函数体时,必须使用
return
关键字显式返回结果

相反,如果使用不带块的箭头函数,返回值是隐式的,将是最后一个计算值

这就是以下代码工作的原因:

const数组=[“测试”、“测试”、“香蕉”]
const result=array.filter(word=>word.includes(“测试”))

console.log(结果)
您的传统功能缺失
return