getFilteredFeatures()

in public/js/components/feature_table.js [31:58]


  getFilteredFeatures(filter) {

    if (!this.props.jsonFeatures) {
      return [];
    }

    filter = filter ? filter : '';
    const filterNormalized = filter.toLowerCase();
    const passes = [];
    const fields = this.props.config.getFieldsInLanguage();
    for (let i = 0; i < this.props.jsonFeatures.features.length; i++) {
      const feature = this.props.jsonFeatures.features[i];
      for (let j = 0; j < fields.length; j++) {
        const field = fields[j];
        const fieldValue = feature.properties[field.name];
        const stringifiedFieldValue = JSON.stringify(fieldValue);
        if (!stringifiedFieldValue) {
          continue;
        }
        const fieldValueNormalized = stringifiedFieldValue.toLowerCase();
        if (fieldValueNormalized.indexOf(filterNormalized) > -1) {
          passes.push(feature);
          break;
        }
      }
    }
    return passes;
  }