Javascript 应在arrow函数数组回调函数的末尾返回一个值
我在React中工作,当前收到错误“预期在arrow函数数组回调返回的末尾返回一个值”。我搜索了其他问题,但似乎找不到一个与min匹配的问题(除非我完全失明)。我有以下代码Javascript 应在arrow函数数组回调函数的末尾返回一个值,javascript,reactjs,filter,arrow-functions,Javascript,Reactjs,Filter,Arrow Functions,我在React中工作,当前收到错误“预期在arrow函数数组回调返回的末尾返回一个值”。我搜索了其他问题,但似乎找不到一个与min匹配的问题(除非我完全失明)。我有以下代码 const self=this; const relevantCompanyMeasures=this.props.companyMeasures .filter(公司测量=>{ for(自我状态的常量度量){ if(measure.id==companyMeasure.measure\u type\u id)返回true
const self=this;
const relevantCompanyMeasures=this.props.companyMeasures
.filter(公司测量=>{
for(自我状态的常量度量){
if(measure.id==companyMeasure.measure\u type\u id)返回true;
否则返回false;
}
});代码>或者:
循环开始了
您将获得第一个度量值
条件为true,返回true
您永远不会前进到第二个度量值
或:
循环开始了
您将获得第一个度量值
条件为false,您返回false
您永远不会前进到第二个度量值
去掉else
并将return false
移动到循环后面,这样只有在到达循环末尾而未找到匹配项时,它才会运行。或者:
循环开始了
您将获得第一个度量值
条件为true,返回true
您永远不会前进到第二个度量值
或:
循环开始了
您将获得第一个度量值
条件为false,您返回false
您永远不会前进到第二个度量值
去掉else
并将return false
移动到循环的后面,这样它只有在到达循环末尾而没有找到匹配项时才会运行。这是因为return
只退出for
循环,而不是数组中的整个回调。prototype.filter()
。与使用for循环检查companyMeasure.measure\u type\u id
是否存在于self.state.measures
中不同,您只需执行一个返回所有id的操作,然后使用以下命令对照返回数组检查id是否存在:
更好的是:
- 由于您使用的是箭头函数,因此封闭范围中的词法
this
将被保留,因此您甚至不需要代理this
- 您还可以在
.filter()
回调之外创建数组映射,以减少开销
- 现在,
.filter()
回调是一个单行程序,我们可以去掉花括号和
以下是最终代码的外观:
const ids = this.state.measures.map(m => m.id);
const relevantCompanyMeasures = this.props.companyMeasures
.filter(companyMeasure => id.includes(companyMeasure.measure_type_id));
这是因为返回只退出for
循环,而不是Array.prototype.filter()中的整个回调。与使用for循环检查companyMeasure.measure\u type\u id
是否存在于self.state.measures
中不同,您只需执行一个返回所有id的操作,然后使用以下命令对照返回数组检查id是否存在:
更好的是:
- 由于您使用的是箭头函数,因此封闭范围中的词法
this
将被保留,因此您甚至不需要代理this
- 您还可以在
.filter()
回调之外创建数组映射,以减少开销
- 现在,
.filter()
回调是一个单行程序,我们可以去掉花括号和
以下是最终代码的外观:
const ids = this.state.measures.map(m => m.id);
const relevantCompanyMeasures = this.props.companyMeasures
.filter(companyMeasure => id.includes(companyMeasure.measure_type_id));
const self=this;
const relevantCompanyMeasures=this.props.companyMeasures
.filter(公司测量=>{
返回self.state.measures.map(meas=>meas.id).indexOf(companyMeasure.measure\u type\u id)!=-1
}
);代码>
const self=this;
const relevantCompanyMeasures=this.props.companyMeasures
.filter(公司测量=>{
返回self.state.measures.map(meas=>meas.id).indexOf(companyMeasure.measure\u type\u id)!=-1
}
);
filter方法仅在满足条件时返回arrayOfValue..filter方法仅在满足条件时返回arrayOfValue..@user48003没问题!每个人都从某处开始;)很高兴它对你有用。@user48003没问题!每个人都从某处开始;)很高兴它对你有用。