gpt4 book ai didi

javascript - AngularJS 中的转换数组属性

转载 作者:行者123 更新时间:2023-11-29 19:20:44 25 4
gpt4 key购买 nike

我在 JavaScript 中有一个普通数组:

$scope.myArray = [{ "coords" : { "lat" : 0, "long" : 0 } }, { "coords" : { "lat" : 1, "long" : 1 } }, { "coords" : { "lat" : 2, "long" : 2 } }];

然后,我有 angular-google-maps 模块,将这些点绘制为屏幕路径。

<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>

但是,该指令需要一组位置的路径,如下所示:

$scope.myArray = [{ "lat" : 0, "long" : 0 }, { "lat" : 1, "long" : 1 }, { "lat" : 2, "long" : 2 }];

有什么方法可以简单地将我的第一个数组转换为 ui-gmap-polyline 期望的数组?我正在考虑编写一个过滤器,但我不确定这是否是最好的方法。位置将添加(并可能更改)到 myArray,我希望 Google map 随之更新。另一种方法是观察 myArray 的变化并每次都创建一个新数组以提供给 map ,但我似乎缺少一个非常简单的解决方案。

例如:path="myArray | filter:coords"-> 有什么方法可以过滤数组以仅返回每个元素的某些字段?

编辑:myArray 是同步的 $firebaseArray ( https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray )。当后端更新(不受我控制)时,Firebase API 会自动更新此数组。

最佳答案

您可以使用 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>

关于javascript - AngularJS 中的转换数组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33140813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com