代码之家  ›  专栏  ›  技术社区  ›  Penny Pang

将reduce()方法转换为map()方法

  •  -1
  • Penny Pang  · 技术社区  · 6 年前

    我想使用map()方法 _processData() 函数提取csv文件的纬度和经度列,但不确定如何提取。我使用d3 fetch来解析csv文件。

      class App extends Component {
        state = {
          points: [],
        }
    
        componentDidMount() {
          this._processData()
        }
    
        _processData() {
          csv(csvFile).then(x => {
            const points = x.reduce((accu, curr) => {
              accu.push({
                position: [Number(curr.LONGITUDE), Number(curr.LATITUDE)],
                pickup: true,
              })
              return accu
            }, [])
            this.setState({
              points,
            })
          })
        }
        
      }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
    1 回复  |  直到 6 年前
        1
  •  3
  •   Aaditya Thakkar    6 年前

    您只需执行以下操作:

    _processData() {
      csv(csvFile).then(x => {
        const points = x.map(curr => ({
          position: [Number(curr.LONGITUDE), Number(curr.LATITUDE)],
          pickup: true,
        }));
        this.setState({
          points,
        })
      })
    }