Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS中的变换数组属性_Javascript_Angularjs_Angularjs Directive_Angularjs Scope_Angularjs Ng Repeat - Fatal编程技术网

Javascript AngularJS中的变换数组属性

Javascript AngularJS中的变换数组属性,javascript,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,我在JavaScript中有一个普通数组: $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.zoo

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

$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多段线所期望的数组?我在考虑写一个过滤器,但我不确定这是否是最好的方法。位置将被添加(可能会更改)到myArray,我希望Google地图也会随之更新。另一种方法是观察myArray的变化,并每次创建一个新的数组以提供给地图,但似乎有一个非常简单的解决方案我没有找到

例如:path=“myArray | filter:coords”
->有没有办法过滤数组以只返回每个元素的特定字段

编辑:myArray是同步的$firebaseArray()。当后端更新时(我无法控制),Firebase API会自动更新此阵列。

您可以使用

演示

var-arr=[{
“coords”:{
“lat”:0,
“长”:0
}
}, {
“coords”:{
“lat”:1,
“长”:1
}
}, {
“coords”:{
“lat”:2,
“长”:2
}
}];
arr=arr.map(函数(e){
返回e.coords;
});
控制台日志(arr);
document.getElementById('output').innerHTML=JSON.stringify(arr,0,2)

正准备提出这个建议。我认为最简单:
arr.map(函数(el){returne e.coords;})
谢谢!但是,此函数始终返回一个新数组。有没有办法将其与_memoize函数集成以避免摘要错误(错误:[$rootScope:infdig]10$digest()迭代已达到。)?@FlockDawson Try
$scope.myArray=$scope.myArray.map(函数(e){return e.coords;})@FlockDawson不要将数组直接分配到作用域,先将其映射,然后再分配到作用域。这是一个Firebase数组,会有很大的不同。您希望对数据集进行哪些类型的更改?只是附加的吗?现有的协调会被修改吗?
$scope.myArray = [{ "lat" : 0, "long" : 0 }, { "lat" : 1, "long" : 1 }, { "lat" : 2, "long" : 2 }];
arr.map(function(e) { return e.coords; });