如何使用for循环创建对象数组

时间:2016-08-06 07:18:29

标签: javascript arrays object

我有一个名为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
    });
}

但它不起作用。

3 个答案:

答案 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并开始后跟。

&#13;
&#13;
var markers = [];

for(var i = 0; i < 5; i++){
 markers.push(
   {
    latitude:'0123',
    longitude:'0345' 
   });
}

console.log(markers);
&#13;
&#13;
&#13;

根据您的需要

更改添加 values

相关问题