我读过一些论坛,内容如下,
var foo = ["a", "b"];//is an array
var foo = {'name':'myname', 'age':'4'};//is an object
都在javascript中。但是当花括号在另一个里面时会发生什么呢?如下所示。
var flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];//is this a 2-d array?
确定这一点可能有助于我解决为何无法使用json数据并在地图上绘制折线的问题。
答案 0 :(得分:1)
将数组视为一种存储。那家商店可以存放各种各样的东西。在您的示例中
var foo = ["a", "b"]
是一个字符串数组,因为foo数组的元素是字符串。您可以使用迭代器(循环等)或直接使用索引来访问它们。
foo[0] // "a"
foo[1] // "b"
foo[2] // undefined
由于您知道{name: "John Doe", age: 40}
是一个对象,所以flightPlanCoordinates
是一个对象数组。您可以使用迭代器或手动访问该数组的元素。
flightPlanCoordinates[0].lat // 37.772
数组甚至可以容纳其他数组。哇
答案 1 :(得分:0)
这看起来像一个对象数组。您可以使用flightPlanCoordinates.forEach
或for
循环来访问它。例如,可以像这样flightPlanCoordinates[0].lat
和flightPlanCoordinates[0].lng
答案 2 :(得分:0)
假设您有以下foo
,bar
和flightPlanCoordinates
var foo = ["a", "b"];
var bar = {'name':'myname', 'age':'4'};
var flightPlanCoordinates = [
{lat: 37.772, lng: -122.214},
{lat: 21.291, lng: -157.821},
{lat: -18.142, lng: 178.431},
{lat: -27.467, lng: 153.027}
];
让我们从这里开始
数组是对象的一种特殊类型,因此如果使用typeof
可能会感到困惑。
console.log(typeof foo); // object
console.log(typeof bar); // object
console.log(typeof flightPlanCoordinates); // object
但是不用担心,这是您如何知道某物是否为数组的地方:
Array.isArray(foo); //returns true
Array.isArray(bar); //returns false
Array.isArray(flightPlanCoordinates); //returns true
这是遍历数组的方式
foo.map((x)=>{
console.log(x); //do something with the items in an array
});
flightPlanCoordinates.map((x)=>{
console.log(`Latitude : ${x.lat} , Longitude : x.lng `);
//do something with the items in an array
});
供参考:
this article讨论数组。
this article讨论Array.isArray()方法。
this article讨论了.map()方法。
希望我能帮助您,谢谢。