我有这个数组
numbers1: any=[
{ lat: 43.477254, lng: -3.780953 },
{ lat: 43.472739, lng: -3.781039 },
{ lat: 43.472498, lng: -3.780164 },
{ lat: 43.472023, lng: -3.780363 }
];
我想动态填充该数组,并以这种方式得到它:
list:any[]=[];
polygon(event){
this.list = [event.coords.lat, event.coords.lng];
this.number.push(this.list);}
但是如何使用Array number1的结构设置值?
{lat:value,lng:value},
我已经尝试过,但我还没有。顺便说一句,对此我很抱歉。
答案 0 :(得分:3)
我认为你想要push
一个对象,而不是一个数组:
this.list = {
lat: event.coords.lat,
lng: event.coords.lng
};
this.number.push(this.list);
答案 1 :(得分:0)
您正在尝试推送数组而不是对象。在上面你有一个名为numbers1的数组,你正在推进数字。使用正确的
试试这个:
list:any={};
polygon(event)
{
this.list = {lat: event.coords.lat, lng: event.coords.lng};
this.number.push(this.list);
}
答案 2 :(得分:0)
您的代码引用了3个不同的数组:this.numbers1
,this.list
和this.number
。我不清楚这是否是故意的区别,但似乎你想要做的是这样的事情:
// describe what the arrays contain
type Coord = { lat: number; lng: number; }
// define the array of those coords, initialize empty
numbers: Coord[] = [];
polygon(event){
// push the next coord (this will be type-checked)
this.numbers.push({ lat: event.coord.lat, lng: event.coord.lng });
}
请注意,使用自定义类型Coord
而不是any
编译器将指导您尝试执行的操作。例如,这将是一个错误:
this.numbers.push([event.coord.lat, event.coord.lng]);
编译错误:
Error:
Argument of type 'any[]' is not assignable to parameter of type 'Coord'.
Property 'lat' is missing in type 'any[]'.