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

How to create an array of objects with a for loop

本文关键字:创建对象 数组 循环 for 何使用      更新时间:2023-09-26

我有一个名为listData的对象数组,我想从其中调用某些信息到一个单独的名为marker的数组中。

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
    });
}

对于这样的数据返回,我喜欢使用"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
    }
})

从您的代码中,我假设您需要以下内容:

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

试试这个,我想这就是你想要的。

删除this并从state开始层次结构,如果没有帮助,您可以删除this.state并开始后记。

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

更改添加 values