Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从自动完成组件返回数据_Javascript - Fatal编程技术网

Javascript 如何从自动完成组件返回数据

Javascript 如何从自动完成组件返回数据,javascript,Javascript,我需要过滤数据,假设用户在A中键入,因此在{this.state.result}中,我想打印带有字母A的所有内容。我指的是对象的头部,在本例中,旅行和赌博包含A 这是我需要迭代的数据 const falsyData = [{ 'Hello': { 'what I do' : 'you just say Hello', 'which language' : 'english' }, 'Travel': { 'Etymolog

我需要过滤数据,假设用户在A中键入,因此在{this.state.result}

中,我想打印带有字母A的所有内容。我指的是对象的头部,在本例中,旅行和赌博包含A

这是我需要迭代的数据

const falsyData = [{
    'Hello': {
      'what I do'       : 'you just say Hello',
      'which language'  : 'english'
    },
    'Travel': {
      'Etymology' : 'The origin of the word "travel" is...',
      'Purpose'   : 'include recreation'
    },
    'Gambling': {
      'Gamble'  : 'Gambling is the wagering of money...',
      'Origins' : 'Many popular games played in...'
    }
  }];

  render () {
    return (
      <Grid>
            <TextField
                onChange={this._onChange.bind(this)}
                onKeyUp={this._changeInput.bind(this)}
                value={this.state.value} />
            {!!this.state.value.length &&
              <Row>
                <Column>  
                 //HERE I PRINT THE RESULTS OF THE SEARCH
                  <p>{this.state.result}</p>
                </Column>                              
              </Row>
            }
      </Grid>
    );
  }

  _matchData = (input) => {
    let reg = new RegExp(input.split('').join('\\w*').replace(/\W/, ""), 'i');
    return falsyData.map(function(data) {
      if (data.match(reg)) {
        return data;
      }
    });
  }

  _changeInput = (val) => {
    let autoCompleteResult = this._matchData(this.state.value);
    if (autoCompleteResult.length) {
      this.setState({result: autoCompleteResult.join(' ')});
    };
  }

  _onChange = (event) => {
    this.setState({value: event.target.value});
  } 
按照我这样做的方式,我在控制台中遇到了一个错误

未捕获类型错误:data.match不是函数


您缺少一些代码。person.match不是您提供的代码的一部分。@RichardGrant很抱歉,这是因为您的代码中没有定义数据。@RichardGrant查看代码,数据来自这里返回falsyData.mapfunctiondata。。。