我有一个名为listData的对象数组,我想将某些信息调用到一个单独的被调用标记中。
var markers = [];
for(let i=0;i<listData.length;i++){
markers.push({
latitude:this.state.listData[i].geometry.location.lat,
longitude:this.state.listData[i].geometry.location.lng,
title:this.state.listData[i].name
});
}
但它不起作用。
答案 0 :(得分:3)
我喜欢使用“map”来获取此类数据。其他人发布的内容没有错,我只是喜欢这种简洁的语法。我假设您错误地引用了初始值。您没有在循环中使用this.state.listData。
var markers = this.state.listData.map(function(v){
return {
latitude:v.geometry.location.lat,
longitude:v.geometry.location.lng,
title:v.name
}
})
答案 1 :(得分:0)
从您的代码中,我认为您需要以下内容:
for( let i=0; i < listData.length; i++ ){
markers.push(
{
latitude: listData[i].geometry.location.lat,
longitude: listData[i].geometry.location.lng,
title: listData[i].name
}
);
您只想循环遍历listData
并为此数组的每个项目(或对象数组)添加一个新对象到markers
数组。因此,我不知道您使用this.state
访问listData
的原因。
答案 2 :(得分:0)
试试这个,我想这就是你想要的。
删除this
并从state
启动层次结构,如果它没有帮助您可以同时删除this.state
并开始后跟。
var markers = [];
for(var i = 0; i < 5; i++){
markers.push(
{
latitude:'0123',
longitude:'0345'
});
}
console.log(markers);
&#13;
根据您的需要
更改和添加 values
。