首页 > 解决方案 > 有没有办法内联这个javascript代码?

问题描述

我正在使用 React 框架。

这是我所拥有的:

const myObject = this.props.objects.find(({id}) => ({id} === this.state.selectedObject.id));
const name = !isEmpty(myObject) ? myObject.name : '';

我避免执行以下操作:

const name = !isEmpty(this.props.objects.find(({id}) => ({id} === this.state.selectedObject.id))) ? this.props.objects.find(({id}) => ({id} === this.state.selectedObject.id)).name : '';

因为执行 find() 两次没有意义。但我只是想知道是否有一些很好的语法可以使它成为我所缺少的单行符。

标签: javascriptreactjs

解决方案


您可以结合使用对象解构和默认参数,例如:

const {name = ''} = this.props.objects.find(({id}) => id === this.state.selectedObject.id) || {};

万一find()方法,没有找到任何东西然后undefined被返回,并将设置name为一个空字符串。


推荐阅读