Как получить доступ к количеству дубликатов в javascript / typescript

У меня есть массив данных => this.allNodeSets. В этом массиве я нахожу дубликаты. А теперь я хочу найти количество дубликатов. Единственный способ найти повторяющееся количество - say => itemCount.ball

Фиктивный код -

var randomArray = ["ball", "ball", "tree", "ball", "tree", "bus", "car"];
var itemCount = {};

randomArray.forEach(function(value){
    if (value in itemCount) itemCount[value] = itemCount[value] + 1;
    else itemCount[value] = 1;
}); 

Чтобы найти счет - сделать =>

 itemCount.ball 

Мне трудно найти этот индивидуальный счет, как это было сделано выше. Мой код -

app.component.ts - Угловой2 +

callFunctionSingleSelectedResult(){

allNodeSets = [
 ["claimIntimationRequestBody", "claimIntimationRequestHeader"],
 ["claimIntimationRequestBody", "claimIntimationRequestHeader"],
 ["claimIntimationRequestBody", "claimIntimationRequestBody"],
["claimIntimationRequestBody", "claimIntimationRequestHeader"],
 ["claimIntimationRequestBody", "claimIntimationResponseBody"],
 ["claimIntimationRequestHeader", "claimIntimationRequestBody"],
 ["claimIntimationRequestHeader", "claimIntimationRequestHeader"],
 ["claimIntimationRequestHeader", "claimIntimationResponseBody"],

 ["claimIntimationRequestBody", "claimIntimationRequestHeader"],

 ["claimIntimationRequestBody", "claimIntimationResponseBody"],
 ["claimIntimationRequestHeader", "claimIntimationResponseBody"],
]


       var duplicateResult = this.findDuplicates(this.allNodeSets);

       console.info("inside duplicates, result= ", duplicateResult);



//------------[1] count duplicates


              var itemCount = {};

              duplicateResult.forEach(function (value) {
                if (value in itemCount)
                  itemCount[value] = itemCount[value] + 1;
                else itemCount[value] = 1;


              });

              console.info("duplicateResult, forEach = count = ", 
           itemCount)

              for (var i = 0; i < duplicateResult.length; i++) {

                console.info(" individual count = ", itemCount)
              }

}


 // finding Duplicates

  findDuplicates(arr) {
    var len = arr.length,
      out = [],
      counts = {};

    for (var i = 0; i < len; i++) {
      var item = arr[i];
      counts[item] = counts[item] >= 1 ? counts[item] + 1 : 1;
      if (counts[item] > 1) {
        out.push(item);
      }
    }

    return out;
  }

  // Function duplicate ends

Вывод -

 duplicateResult = 
    [ 
    ["claimIntimationRequestBody","claimIntimationRequestHeader"],
    ["claimIntimationRequestBody", "claimIntimationRequestHeader"], 
    ["claimIntimationRequestBody","claimIntimationRequestHeader"] ,
    ["claimIntimationRequestBody","claimIntimationResponseBody"],
    ["claimIntimationRequestHeader", "claimIntimationResponseBody"] , 
    ["claimIntimationRequestHeader" "claimIntimationResponseBody"] 
    ]



    duplicate count, counter = {["claimIntimationRequestBody","claimIntimationRequestHeader"]: 3, 

["claimIntimationRequestBody","claimIntimationRequestBody"]: 1, 

["claimIntimationRequestBody","claimIntimationResponseBody"]: 1}

Я обыскал всю сеть, но другого рабочего способа, с помощью которого я мог бы определить код, который дает счет, другим способом, нет. Пожалуйста, помогите определить способ получения количества узлов или, может быть, здесь есть способ получить количество узлов. Я не могу этого сделать.

Если я сделаю это -

 for (var i = 0; i < duplicateResult.length; i++) {

                console.info(" individual count = ", itemCount.duplicateResult)
              }

Я получаю ошибку -

Property 'duplicateResult' does not exist on type '{}'.

Ссылка -

Как проверить, повторяются ли элементы в массиве?

Так у вас есть дубликат arrays?

Ashish Ranjan 04.12.2018 10:37

да. Я обнаружил дубликаты до их подсчета. Я включу это в свой вопрос

Techdive 04.12.2018 10:38

Устранение повторяющихся массивов не будет работать так, как вы сейчас пытаетесь, на массивы ссылаются по адресу, поэтому два массива, содержащие одинаковые элементы, будут разными при сравнении на равенство

Ashish Ranjan 04.12.2018 10:41

Вы хотите узнать количество строк или количество подмассивов, поясните, пожалуйста?

Arvind 04.12.2018 10:42

Я хочу найти количество подмассивов

Techdive 04.12.2018 10:48

Вы назначаете переменную duplicateResult результату вызова findDuplicates, а затем переназначаете ей новое значение. Почему?

hindmost 04.12.2018 10:56

Нееет ... на самом деле это просто для справки. Я показываю вывод для справки xyz. См. Первый комментарий. Это фактический результат, который я получаю после findDuplicates.

Techdive 04.12.2018 10:59

Я исправил пожалуйста проверьте

Techdive 04.12.2018 11:03

Примечание: на самом деле у вас уже есть количество дубликатов в findDuplicates, так что вы снова выполняете ту же работу.

hindmost 04.12.2018 11:21
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
9
110
2

Ответы 2

var randomArray = ["ball", "ball", "tree", "ball", "tree", "bus", "car"];
var counts = {};
randomArray.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });
console.info(counts)

это рабочий пример, надеюсь, это поможет

 var input= [ 
            ["claimIntimationRequestBody","claimIntimationRequestHeader"],
            ["claimIntimationRequestBody", "claimIntimationRequestHeader"], 
            ["claimIntimationRequestBody","claimIntimationRequestHeader"] ,
            ["claimIntimationRequestBody","claimIntimationResponseBody"],
            ["claimIntimationRequestHeader", "claimIntimationResponseBody"] , 
            ["claimIntimationRequestHeader", "claimIntimationResponseBody"] 
        ];
        
        var output = {};
        
        input.forEach(item => {
            // key is combination of all values of subarray  
            let key = item.join("_");
            if (!output[key]) output[key] = 0;
            output[key] +=1;
          }
        )
        console.info(output)
      

Другие вопросы по теме