我在JavaScript中有一个普通数组:
<input type="text" id="tfq" class="tftextinput2" name="business" size="20" maxlength="40" style="width:210px" placeholder="Business e.g. Insurance"/>
然后,我有angular-google-maps模块,将这些点绘制为屏幕的路径。
$scope.myArray = [{ "coords" : { "lat" : 0, "long" : 0 } }, { "coords" : { "lat" : 1, "long" : 1 } }, { "coords" : { "lat" : 2, "long" : 2 } }];
然而,该指令需要通过一系列位置来路径,如下所示:
<ui-gmap-google-map center='map.center' zoom='map.zoom'>
<ui-gmap-polyline path="myArray" stroke="p.stroke" visible='p.visible' geodesic='p.geodesic' fit="false" editable="p.editable" draggable="p.draggable" icons='p.icons'>
</ui-gmap-polyline>
</ui-gmap-google-map>
有没有办法简单地在我的第一个数组和ui-gmap-polyline期望的数组之间进行转换?我在考虑编写一个过滤器,但我不确定这是否是最好的方法。职位将被添加(并可能更改)到myArray,我希望Google地图随之更新。另一种方法是观察myArray进行更改并每次创建一个新的数组以提供给Map,但似乎有一个非常简单的解决方案我不知道。
$scope.myArray = [{ "lat" : 0, "long" : 0 }, { "lat" : 1, "long" : 1 }, { "lat" : 2, "long" : 2 }];
- &GT;有没有办法过滤数组只返回每个元素的某些字段?
编辑:myArray是一个同步的$ firebaseArray()。更新后端时,Firebase API会自动更新此阵列(不受我的控制)。
答案 0 :(得分:3)
您可以使用map
arr.map(function(e) { return e.coords; });
<强>演示强>
var arr = [{
"coords": {
"lat": 0,
"long": 0
}
}, {
"coords": {
"lat": 1,
"long": 1
}
}, {
"coords": {
"lat": 2,
"long": 2
}
}];
arr = arr.map(function(e) {
return e.coords;
});
console.log(arr);
document.getElementById('output').innerHTML = JSON.stringify(arr, 0, 2);
<pre id="output"></pre>