How to get the number of times a value is repeated in an array?

0

I need to know how many times each of the parts is repeated, the unique key of each is the id that has each array within the array .

Currently I only print the names but I can not find how to do an accountant for each part.

var array = [
    [
      49,
      [
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      48,
      [
        {
          "id": "341",
          "nombre": "Sistema de Descarte",
          "id_padre": "0"
        },
        {
          "id": "342",
          "nombre": "Dedos de Retension",
          "id_padre": "341"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      47,
      [
        {
          "id": "334",
          "nombre": "Sistema de Refrigeracion",
          "id_padre": "0"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "314",
          "nombre": "Muelles",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        },
        {
          "id": "338",
          "nombre": "Condensadora",
          "id_padre": "334"
        },
        {
          "id": "335",
          "nombre": "Compresor",
          "id_padre": "334"
        },
        {
          "id": "336",
          "nombre": "Evaporador",
          "id_padre": "334"
        },
        {
          "id": "337",
          "nombre": "Partes Electricas",
          "id_padre": "334"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      46,
      [
        {
          "id": "8",
          "nombre": "Placas",
          "id_padre": "1"
        },
        {
          "id": "305",
          "nombre": "Superior ",
          "id_padre": "8"
        },
        {
          "id": "306",
          "nombre": "Inferior",
          "id_padre": "8"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      45,
      [
        {
          "id": "341",
          "nombre": "Sistema de Descarte",
          "id_padre": "0"
        },
        {
          "id": "342",
          "nombre": "Dedos de Retension",
          "id_padre": "341"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      44,
      [
        {
          "id": "305",
          "nombre": "Superior ",
          "id_padre": "8"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      36,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      26,
      [
        {
          "id": "1",
          "nombre": "Estación de Formación",
          "id_padre": "0"
        },
        {
          "id": "306",
          "nombre": "Inferior",
          "id_padre": "8"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      25,
      [
        {
          "id": "1",
          "nombre": "Estación de Formación",
          "id_padre": "0"
        },
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      24,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      23,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      22,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      21,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      20,
      [
        {
          "id": "4",
          "nombre": "Estación de Calentamiento",
          "id_padre": "0"
        },
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "7",
          "nombre": "Placas",
          "id_padre": "4"
        },
        {
          "id": "9",
          "nombre": "Superior",
          "id_padre": "7"
        },
        {
          "id": "10",
          "nombre": "Inferior",
          "id_padre": "7"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      19,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      18,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      17,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      16,
      [
        {
          "id": "309",
          "nombre": "Estación de Sellado",
          "id_padre": "0"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "316",
          "nombre": "Resortes",
          "id_padre": "309"
        },
        {
          "id": "315",
          "nombre": "Leva",
          "id_padre": "309"
        },
        {
          "id": "313",
          "nombre": "Esparragos",
          "id_padre": "309"
        },
        {
          "id": "314",
          "nombre": "Muelles",
          "id_padre": "309"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      15,
      [
        {
          "id": "309",
          "nombre": "Estación de Sellado",
          "id_padre": "0"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      14,
      [
        {
          "id": "334",
          "nombre": "Sistema de Refrigeracion",
          "id_padre": "0"
        },
        {
          "id": "337",
          "nombre": "Partes Electricas",
          "id_padre": "334"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      13,
      [
        {
          "id": "317",
          "nombre": "Estación de Corte",
          "id_padre": "0"
        },
        {
          "id": "320",
          "nombre": "Ventosas",
          "id_padre": "317"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      12,
      [
        {
          "id": "317",
          "nombre": "Estación de Corte",
          "id_padre": "0"
        },
        {
          "id": "320",
          "nombre": "Ventosas",
          "id_padre": "317"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      11,
      [
        {
          "id": "320",
          "nombre": "Ventosas",
          "id_padre": "317"
        }
      ],
      "Blister / 0803029 / 21256464"
    ]
  ]
;

//console.log(array);

let array_listado = [];
for(n in array){
    let conteo = 0;
    let array_prin = array[n][1];
    for(j in array_prin){
        let id_parte = parseInt(array_prin[j].id);
        console.log('id_parte: '+id_parte);
        let result = false;
        for(l in array_listado){
            if(array_listado[l].id === id_parte){
                result = true;
                break;
            }
        }
        if(!result){
            array_listado.push({id: id_parte,nombre: array_prin[j].nombre,conteo: 0,});
        }else{
          //aca no se q hacer :/
          //se supone que debo buscar el elemento y sumarle 1 al contador
        }
    }
}
console.log(array_listado);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    
asked by Pablo Contreras 21.08.2017 в 17:41
source

1 answer

3

In an object that calls counter I keep each of the IDs of your array as property, if the ID does not exist I initialize it with 1, if there is an increase in its value, at the end I go through all the properties of the counter (which are the IDs) counted) and print them

var array = [
    [
      49,
      [
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      48,
      [
        {
          "id": "341",
          "nombre": "Sistema de Descarte",
          "id_padre": "0"
        },
        {
          "id": "342",
          "nombre": "Dedos de Retension",
          "id_padre": "341"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      47,
      [
        {
          "id": "334",
          "nombre": "Sistema de Refrigeracion",
          "id_padre": "0"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "314",
          "nombre": "Muelles",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        },
        {
          "id": "338",
          "nombre": "Condensadora",
          "id_padre": "334"
        },
        {
          "id": "335",
          "nombre": "Compresor",
          "id_padre": "334"
        },
        {
          "id": "336",
          "nombre": "Evaporador",
          "id_padre": "334"
        },
        {
          "id": "337",
          "nombre": "Partes Electricas",
          "id_padre": "334"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      46,
      [
        {
          "id": "8",
          "nombre": "Placas",
          "id_padre": "1"
        },
        {
          "id": "305",
          "nombre": "Superior ",
          "id_padre": "8"
        },
        {
          "id": "306",
          "nombre": "Inferior",
          "id_padre": "8"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      45,
      [
        {
          "id": "341",
          "nombre": "Sistema de Descarte",
          "id_padre": "0"
        },
        {
          "id": "342",
          "nombre": "Dedos de Retension",
          "id_padre": "341"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      44,
      [
        {
          "id": "305",
          "nombre": "Superior ",
          "id_padre": "8"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      36,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      26,
      [
        {
          "id": "1",
          "nombre": "Estación de Formación",
          "id_padre": "0"
        },
        {
          "id": "306",
          "nombre": "Inferior",
          "id_padre": "8"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      25,
      [
        {
          "id": "1",
          "nombre": "Estación de Formación",
          "id_padre": "0"
        },
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      24,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      23,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      22,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      21,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      20,
      [
        {
          "id": "4",
          "nombre": "Estación de Calentamiento",
          "id_padre": "0"
        },
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "7",
          "nombre": "Placas",
          "id_padre": "4"
        },
        {
          "id": "9",
          "nombre": "Superior",
          "id_padre": "7"
        },
        {
          "id": "10",
          "nombre": "Inferior",
          "id_padre": "7"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      19,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      18,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      17,
      [
        {
          "id": "339",
          "nombre": "Sistema de Deteccion",
          "id_padre": "0"
        },
        {
          "id": "340",
          "nombre": "Camaras",
          "id_padre": "339"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      16,
      [
        {
          "id": "309",
          "nombre": "Estación de Sellado",
          "id_padre": "0"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "316",
          "nombre": "Resortes",
          "id_padre": "309"
        },
        {
          "id": "315",
          "nombre": "Leva",
          "id_padre": "309"
        },
        {
          "id": "313",
          "nombre": "Esparragos",
          "id_padre": "309"
        },
        {
          "id": "314",
          "nombre": "Muelles",
          "id_padre": "309"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      15,
      [
        {
          "id": "309",
          "nombre": "Estación de Sellado",
          "id_padre": "0"
        },
        {
          "id": "310",
          "nombre": "Placas",
          "id_padre": "309"
        },
        {
          "id": "311",
          "nombre": "Inferior",
          "id_padre": "310"
        },
        {
          "id": "312",
          "nombre": "Superior",
          "id_padre": "310"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      14,
      [
        {
          "id": "334",
          "nombre": "Sistema de Refrigeracion",
          "id_padre": "0"
        },
        {
          "id": "337",
          "nombre": "Partes Electricas",
          "id_padre": "334"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      13,
      [
        {
          "id": "317",
          "nombre": "Estación de Corte",
          "id_padre": "0"
        },
        {
          "id": "320",
          "nombre": "Ventosas",
          "id_padre": "317"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      12,
      [
        {
          "id": "317",
          "nombre": "Estación de Corte",
          "id_padre": "0"
        },
        {
          "id": "320",
          "nombre": "Ventosas",
          "id_padre": "317"
        }
      ],
      "Blister / 0803029 / 21256464"
    ],
    [
      11,
      [
        {
          "id": "320",
          "nombre": "Ventosas",
          "id_padre": "317"
        }
      ],
      "Blister / 0803029 / 21256464"
    ]
  ]
;

//console.log(array);

let array_listado = [];

var contador = {}; //A este objeto les asignamos los ID para irlos contando

for(n in array){
    let conteo = 0;
    let array_prin = array[n][1];
    for(j in array_prin){
        let id_parte = parseInt(array_prin[j].id);
        console.log('id_parte: '+id_parte);

        if(!contador[array_prin[j].id])
            contador[array_prin[j].id] = 1;
        else
            contador[array_prin[j].id]++;

        let result = false;
        for(l in array_listado){
            if(array_listado[l].id === id_parte){
                result = true;
                break;
            }
        }
        if(!result){
            array_listado.push({id: id_parte,nombre: array_prin[j].nombre,conteo: 0,});
        }else{
          //aca no se q hacer :/
          //se supone que debo buscar el elemento y sumarle 1 al contador
        }
    }
}
console.log(array_listado);

for(var id in contador) //Obtenemos los id que se contaron
    console.log("id " + id + " = " + contador[id]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    
answered by 21.08.2017 / 18:23
source