我有以下代碼:陣營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:[]'。我不需要所有的數據,所以我只返回我需要的東西。 –