如何从getOptions方法的值中删除空白字符串? -Javascript

时间:2019-01-23 06:31:14

标签: javascript reactjs

我正在尝试为React中的表实现过滤器功能。基本上,这是一个多选。

这是我的下拉代码

<Select
              placeholder='ALL'
              style={{ width: '80%', marginBottom: '20px' }}
              onChange={(entry) => {
              this.setState({ fnselect: entry });
              this.onFilteredChange(
                entry.map((o) => {
                  return o.value;
                }),
                'FirstName'
              );
            }}
              value={this.state.fnselect}
              multi={true} // eslint-disable-line
              options={this.getOptions('FirstName')}
            />

这是getOptions方法。

getOptions(propertyName) {
    return this.state.data.reduce((accum, elem, i) => {
      const accumulator = [...accum];
      if(!accumulator.some(e => e.value === elem[propertyName])) { // eslint-disable-line
        accumulator.push({
          id: i,
          value: elem[propertyName],
          label: elem[propertyName]
        });
      }
      return accumulator;
    }, []);
  }

基本上this.state.data具有所有字段/下拉列表的值。我想删除所有下拉列表的空字符串值。我不想修改this.state.data。我想在getOptions方法中做到这一点。

我想从getOptions方法中删除该特定过滤器的空白字符串数据。我该如何实现?

为了更加清晰

options={this.getOptions('FirstName')}// Here 'FirstName' is a field name in this.state.data

有人可以帮助我消除下拉列表中的空白字符串吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Array.filter仅保留不为空的字符串。

const arr = ['1', '2', '', '4'];

console.log(arr.filter(Boolean));