我有以下代码:阵营JS - 在多个阵列的映射来得到一个数组
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]
]
我怎样才能达到它在我的情况?
你可以分享'this.state.items'的样本数据吗? – Muhaimin
@MuhaiminAbdul是的,它是一个具有不同数据的对象数组,它看起来像这样: '[name:“someName”,data:[]'。我不需要所有的数据,所以我只返回我需要的东西。 –