gpt4 book ai didi

javascript - 在 JS/Angular 中过滤嵌套数组无法正常工作

转载 作者:行者123 更新时间:2023-11-30 06:51:10 25 4
gpt4 key购买 nike

我有这种情况。我正在向 REST API 发出 3 个 HTTP 请求,加载后,我必须在客户端对这些数据进行后处理。

我有:

  • “marcas(品牌)”数组
  • “materiales( Material )”数组
  • “telas(织物)”阵列

我必须以这种方式过滤数据:在数组的底部我有 Material 。在每种 Material 内部,我将所有品牌放入一个字段 (Marcas),并且在每种 Material 的每个品牌内部(之前插入到一种 Material 上),织物,以及对应的品牌/ Material 。我正在做 2 个嵌套 map ,但它不起作用

这是我正在尝试做的事情的现场演示:

var myApp = angular.module('myApp',[]).controller("MyCtrl", MyCtrl);
function MyCtrl($scope) {
$scope.telas = [{"ID":1,"Nombre":"Beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":3,"Nombre":"Ivory","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":4,"Nombre":"Negro","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":5,"Nombre":"Blanco 15 oz.","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":12,"Nombre":"BLACKOUT VINILICO ECO"}},{"ID":6,"Nombre":"Gris","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":12,"Nombre":"BLACKOUT VINILICO ECO"}},{"ID":7,"Nombre":"Natural","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":12,"Nombre":"BLACKOUT VINILICO ECO"}},{"ID":8,"Nombre":"Gris","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":9,"Nombre":"Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":10,"Nombre":"Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":12,"Nombre":"BLACKOUT VINILICO ECO"}},{"ID":15,"Nombre":"Uganda Tabaco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":2,"Nombre":"FIBRA VEGETAL"}},{"ID":16,"Nombre":"Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":17,"Nombre":"Blanco - Gris","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":18,"Nombre":"Blanco - Beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":19,"Nombre":"Bicolor 2958 natural","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":20,"Nombre":"Liso 2861 Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"}},{"ID":23,"Nombre":"Kendall beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":26,"Nombre":"Ramio natural","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":39,"Nombre":"Rustico 2604","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":40,"Nombre":"Rustico 3222","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":41,"Nombre":"Congo Marfil","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":42,"Nombre":"Camerún beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":43,"Nombre":"Rustico 3070","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":44,"Nombre":"Ramio Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":45,"Nombre":"Ramio Marfil","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":46,"Nombre":"Uganda Tostado","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":2,"Nombre":"FIBRA VEGETAL"}},{"ID":47,"Nombre":"Uganda Marrón","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":2,"Nombre":"FIBRA VEGETAL"}},{"ID":48,"Nombre":"Uganda Crema","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":2,"Nombre":"FIBRA VEGETAL"}},{"ID":49,"Nombre":"Uganda Beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":2,"Nombre":"FIBRA VEGETAL"}},{"ID":50,"Nombre":"Nilo Natural","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"}},{"ID":51,"Nombre":"Nilo Marfil","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"}},{"ID":52,"Nombre":"Nilo Beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"}},{"ID":53,"Nombre":"Bicolor 2958 marrón","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":54,"Nombre":"Bicolor 2958 marfil","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":11,"Nombre":"LISOS Y RUSTICOS"}},{"ID":55,"Nombre":"Amazonia Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"}},{"ID":56,"Nombre":"Liso 2861 Marfil","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"}},{"ID":57,"Nombre":"Blanco / blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":13,"Nombre":"BLACKOUT TEXTIL"}},{"ID":58,"Nombre":"Blanco / beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":13,"Nombre":"BLACKOUT TEXTIL"}},{"ID":59,"Nombre":"Natural","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":60,"Nombre":"Blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":61,"Nombre":"Gris","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":62,"Nombre":"Negro","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":96,"Nombre":"BEIGE / BICOLOR","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":13,"Nombre":"BLACKOUT TEXTIL"}},{"ID":99,"Nombre":"Negro","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":120,"Nombre":"Gris","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":121,"Nombre":"Beige","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":122,"Nombre":"Verde","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":123,"Nombre":"Chocolate","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":124,"Nombre":"Celeste grisáceo","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":125,"Nombre":"Negro / blanco","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"}},{"ID":126,"Nombre":"marrón / negro","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":127,"Nombre":"plata - negro","Marca":{"ID":1,"Nombre":"Genérica"},"Material":{"ID":3,"Nombre":"5% POLIESTER"}},{"ID":27,"Nombre":"E screen white / linen","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":67,"Nombre":"E screen 1% white / white","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":7,"Nombre":"1% FIBERGLASS"}},{"ID":68,"Nombre":"E screen 1% white / pearl","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":7,"Nombre":"1% FIBERGLASS"}},{"ID":69,"Nombre":"E screen 1% white / linen","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":7,"Nombre":"1% FIBERGLASS"}},{"ID":70,"Nombre":"E screen 3% white / white","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":8,"Nombre":"3% FIBERGLASS"}},{"ID":71,"Nombre":"E screen 3% white / pearl","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":8,"Nombre":"3% FIBERGLASS"}},{"ID":72,"Nombre":"E screen 3% white / linen","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":8,"Nombre":"3% FIBERGLASS"}},{"ID":73,"Nombre":"Edessa Beach","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":74,"Nombre":"Edessa Glacier","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":75,"Nombre":"S screen Patina","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":9,"Nombre":"4% FIBERGLASS"}},{"ID":76,"Nombre":"S screen Porcelain","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":9,"Nombre":"4% FIBERGLASS"}},{"ID":77,"Nombre":"S screen Papyrus","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":9,"Nombre":"4% FIBERGLASS"}},{"ID":78,"Nombre":"S screen Granite","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":9,"Nombre":"4% FIBERGLASS"}},{"ID":79,"Nombre":"S screen Carbon","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":9,"Nombre":"4% FIBERGLASS"}},{"ID":80,"Nombre":"E screen white / white","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":81,"Nombre":"E screen white / pearl","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":82,"Nombre":"E screen linen / linen","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":83,"Nombre":"A screen white / white","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":10,"Nombre":"14% FIBERGLASS"}},{"ID":84,"Nombre":"A screen White / Sable","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":10,"Nombre":"14% FIBERGLASS"}},{"ID":85,"Nombre":"A screen Charcoal / linen","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":10,"Nombre":"14% FIBERGLASS"}},{"ID":86,"Nombre":"A screen Charcoal / charcoal","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":10,"Nombre":"14% FIBERGLASS"}},{"ID":87,"Nombre":"A screen white / pearl","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":10,"Nombre":"14% FIBERGLASS"}},{"ID":88,"Nombre":"E screen charcoal / cocoa","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":90,"Nombre":"E screen charcoal / charcoal","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":91,"Nombre":"M Screen charcoal / apricot","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":92,"Nombre":"M screen cocoa / brick facade-fall","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":93,"Nombre":"M Screen pearl / pearl","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":94,"Nombre":"M Screen Linen / Sable Cocoa","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":95,"Nombre":"M screen charcoal / grey","Marca":{"ID":2,"Nombre":"Mermet"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":63,"Nombre":"Natte 380 blanco / perla","Marca":{"ID":3,"Nombre":"Copaco"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":64,"Nombre":"Natte 380 blanco","Marca":{"ID":3,"Nombre":"Copaco"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":65,"Nombre":"Natte 380 blanco / lino","Marca":{"ID":3,"Nombre":"Copaco"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":66,"Nombre":"Natte 380 negro","Marca":{"ID":3,"Nombre":"Copaco"},"Material":{"ID":5,"Nombre":"5% FIBERGLASS"}},{"ID":21,"Nombre":"Kendall blanco","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":22,"Nombre":"Kendall arena","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":24,"Nombre":"Kendall cemento","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":25,"Nombre":"Kendall marrón","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":28,"Nombre":"South beach ebony","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":29,"Nombre":"South beach white","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"}},{"ID":30,"Nombre":"South beach ivory","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"}},{"ID":31,"Nombre":"South beach stone","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"}},{"ID":32,"Nombre":"South beach bordeaux","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"}},{"ID":33,"Nombre":"South beach navy","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"}},{"ID":34,"Nombre":"South beach ebony","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"}},{"ID":35,"Nombre":"South beach white","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":36,"Nombre":"South beach ivory","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":37,"Nombre":"South beach stone","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":38,"Nombre":"South beach bordeaux","Marca":{"ID":4,"Nombre":"Vertilux"},"Material":{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"}},{"ID":97,"Nombre":"Masacril amarillo","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":100,"Nombre":"Masacril Azul","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":101,"Nombre":"Masacril Azul Marino","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":102,"Nombre":"Masacril Azul Real","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":103,"Nombre":"Masacril Beige","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":104,"Nombre":"Masacril Beige X","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":105,"Nombre":"Masacril Berna","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":106,"Nombre":"Masacril Blanco","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":107,"Nombre":"Masacril Café","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":108,"Nombre":"Masacril Canigo","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":109,"Nombre":"Masacril Capri","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":110,"Nombre":"Masacril Crema","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":111,"Nombre":"Masacril Granate","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":112,"Nombre":"Masacril Gris","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":113,"Nombre":"Masacril Jade","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":114,"Nombre":"Masacril Jamaica","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":115,"Nombre":"Masacril Madeira","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":116,"Nombre":"Masacril Maíz","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":117,"Nombre":"Masacril Marfil","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}},{"ID":119,"Nombre":"Masacril Marrón","Marca":{"ID":5,"Nombre":"Sauleda"},"Material":{"ID":15,"Nombre":"ACRILICO COLORIDO"}}];

$scope.marcas = [{"ID":1,"Nombre":"Genérica"},{"ID":2,"Nombre":"Mermet"},{"ID":3,"Nombre":"Copaco"},{"ID":4,"Nombre":"Vertilux"},{"ID":5,"Nombre":"Sauleda"}];

$scope.materiales = [{"ID":1,"Nombre":"BLACKOUT VINILICO PREMIUM"},{"ID":2,"Nombre":"FIBRA VEGETAL"},{"ID":3,"Nombre":"5% POLIESTER"},{"ID":4,"Nombre":"BLACKOUT VINILO / TEXTIL"},{"ID":5,"Nombre":"5% FIBERGLASS"},{"ID":6,"Nombre":"ACRÍLICO TRANSLÚCIDO"},{"ID":7,"Nombre":"1% FIBERGLASS"},{"ID":8,"Nombre":"3% FIBERGLASS"},{"ID":9,"Nombre":"4% FIBERGLASS"},{"ID":10,"Nombre":"14% FIBERGLASS"},{"ID":11,"Nombre":"LISOS Y RUSTICOS"},{"ID":12,"Nombre":"BLACKOUT VINILICO ECO"},{"ID":13,"Nombre":"BLACKOUT TEXTIL"},{"ID":14,"Nombre":"ALGODÓN Y POLIÉSTER TRANSLÚCIDO"},{"ID":15,"Nombre":"ACRILICO COLORIDO"}];


$scope.resultado= $scope.materiales.map(function(material){
material.Marcas = $scope.marcas.map(function(marca){
marca.Telas = $scope.telas.filter(function(tela){
return tela.Material.ID == material.ID && tela.Marca.ID == marca.ID;
});
return marca;
});
return material
});
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<ul ng-repeat="material in resultado">
<li>{{ material.Nombre }}</li>
<ul ng-repeat="marca in material.Marcas">
<li>{{ marca.Nombre }}</li>
<ul ng-repeat="tela in marca.Telas">
<li>{{ tela.ID + " - " + tela.Nombre }}</li>
</ul>
</ul>
</ul>
</div>

如您所见,过滤将 20 种(共 50 种)布料放入最后一个品牌中重复的所有布料,并且它们的顺序正确

最佳答案

由于某些奇怪的原因,'marcas' 中的 map 无法正常工作。

我已经解决了这个问题,将变量复制到一个新的,并根据相应的修改返回:

$scope.resultado = $scope.materiales.map(function (material) {
material.Marcas = $scope.marcas.map(function (marca) {
var new_var = JSON.parse(JSON.stringify(marca));
new_var.Telas = $scope.telas_lista.filter(function (tela) {
return tela.Material.ID == material.ID && tela.Marca.ID == marca.ID;
});
return new_var;
});
return material;
});

关于javascript - 在 JS/Angular 中过滤嵌套数组无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46762696/

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