【发布时间】:2020-12-05 23:07:29
【问题描述】:
我正在编写一个程序来获取城市列表及其 GPS 坐标,并将其存储在名为“城市”的数组中,以便以后使用。这是代码片段:
var city = {name:String,lat:Number,lon:Number};
var cities = Array.of(city);
city.name="London";
city.lat=51.50;
city.lon=-0,11;
cities.push(city);
city.name="Barcelona";
city.lat=41.38;
city.lon=2,15;
cities.push(city);
console.log("Number of cities "+cities.length);
console.log(cities);
执行这段代码的结果如下:
Number of cities 3
[
{ name: 'Barcelona', lat: 41.38, lon: 2 },
{ name: 'Barcelona', lat: 41.38, lon: 2 },
{ name: 'Barcelona', lat: 41.38, lon: 2 }
]
也就是说,“push”方法似乎覆盖了所有数组记录,并且还添加了一条额外的记录。我还声明了数组城市如下: var 城市 = [城市]; // “city”类的元素数组 var 城市 = []; 两个声明的结果是一样的。
这很奇怪,看起来很明显,但我不知道发生了什么..
¿我在上面显示的代码中做错了什么?
提前致谢
【问题讨论】:
标签: javascript arrays object push