javascript - React js - 映射多个数组以获得一个数组

标签 javascript arrays reactjs

我有以下代码:

let getEntries = Object.entries(this.state.items).forEach(([key, value]) => {
    let pos = value[1].location;
    for (var lat in pos) {
      let lt = ${pos[lat]};
      this.setState({lat: this.state.lat.concat(lt)});
    };
    for (var lon in pos) {
      let ln = ${pos[lon]};
      this.setState({lon: this.state.lon.concat(ln)})
    };
    let latLng = this.state.lat.map((value,index)=>[parseFloat(value),parseFloat(this.state.lon[index])]);
    this.setState({latLng});
  });

如果我 console.log latLng 状态,我会得到以下结构:

[
    [val1, val2]
    [val1, val2]
    [valN, valN]
]

如您所见,我通过循环相应的对象来获取对象值,然后在 let latLng 中将这些值形成一个数组。它按预期工作,但我还需要在该 latLng 数组中添加一些其他数据。 我以同样的方式获取这些数据,例如:

let getMessage = Object.entries(this.state.items).forEach(([key, value]) => {
    let value = value[1].message;
    for (var i in value) {
      let messages = value[i];
      this.setState({messages: this.state.messages.concat(messages)});
    }
  });
let getSomethingOther = Object.entries(this.state.items).forEach(([key, value]) => {
    let someValue = value[1].someProperty;
    for (var someProp in someValue) {
      let someOutput = someValue[someProp];
      this.setState({someState: this.state.someState.concat(someOutput)});
    }
  });

这些函数可以工作,但现在我需要将它们放入我存储在状态中的 latLng 数组中,并可以使用 this.state.latLng 调用它。我想我需要像第一个示例中那样的 map 函数,但我无法让它工作。最终我需要这样的结构,我可以通过我的 this.state.latLng 使用它:

[
   [val1, val2, val3, val4]
   [val1, val2, val3, val4]
   [val1, val2, val3, val4]
   [valN, valN, valN, valN]
]

在我的情况下如何才能达到它?

最佳答案

我在这里试图做的是简化以帮助您实现您想要实现的目标。希望对您有帮助

let getEntries = Object.entries(this.state.items).map(key, value) => {
    const latlon = this.state.latlng.concat([pos.lat, pos.lon])
    this.setState({ lat: this.state.lat.concat(pos.lat), lon: this.state.lon.concat(pos.lon) }, () => this.setState({ latlon }))
});

关于javascript - React js - 映射多个数组以获得一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45189215/

相关文章:

javascript - 正则表达式,选择其他文本中的一部分

javascript - 使文本框在 tr(row) 单击时可见,并在 DIV 中单击按钮时打印相同的数据

ios - 使用 UIImageView repeatedValue() 初始化 Swift 数组似乎不起作用

c++ - 在 C++ 中使用 strtol 获取 long double

arrays - 更新数组并将 varchar 转换为整数

javascript - React js Firebase 身份验证无法正常工作

javascript - React useState 表现非常糟糕

对象中的 Javascript 对象

javascript - 为什么按钮中的 event.target 返回空值?

Javascript 或 jQuery 在页面刷新时显示随机元素