将特定项的属性从不同数组添加到对象的正确方法是什么

时间:2016-05-09 11:56:14

标签: angularjs

我有两个不同的数组,一个持有public static void chargement(Mat img) { NByte = (int) (img.total() * img.elemSize()); buffer = new byte[NByte]; img.get(0, 0, buffer); } public static Point[] detectCercle(Mat img, int rayon) { Mat circles = new Mat(); Point[] circlesList = null; Imgproc.HoughCircles(img, circles, Imgproc.CV_HOUGH_GRADIENT, 1, 60, 200, 20, 30, 0); System.out.println("#rows " + circles.rows() + " #cols " + circles.cols()); double x = 0.0; double y = 0.0; int r = 0; for (int i = 0; i < circles.rows(); i++) { double[] data = circles.get(i, 0); for (int j = 0; j < data.length; j++) { x = data[0]; y = data[1]; r = (int) data[2]; } circlesList[i] = new Point(x, y); } return circlesList; } public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat matimage1 = Imgcodecs.imread("src/imge1.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR); Mat matimage2 = Imgcodecs.imread("src/image2.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR); Mat matimage3 = Imgcodecs.imread("src/image3.jpg", Imgcodecs.CV_LOAD_IMAGE_COLOR); detectCercle(matimage3,2); } 而另一个持有categories

分类数组:

pages

页数组:

$scope.categories = [{
  id: 1,
  name: "Test category"
}];

我想将所有关联的网页添加到其类别中。这可以通过了解页面的$scope.pages = [{ id: 1, name: "Test page", category: 1 }]; 属性是否等于类别的category来实现。

目前,我写了一个循环的函数

id

这是实现此目的的正确Angular方法吗?

1 个答案:

答案 0 :(得分:3)

对此没有正确或错误的答案。如果我将您的问题解释为“Can Angular可以简化这个吗?”然后是的,它可以。

您可以使用Angular filtersmergePages函数压缩为以下内容:

function mergePages()
{
    angular.forEach($scope.categories, function (category)
    {
        category['pages'] = $filter('filter')($scope.pages, {category: category.id});
    });
}

这会通过比较过滤器中的类别ID来填充$scope.categories相应的页面。

Here's表明它有效的小提琴。