I have an array of data => this.allNodeSets. To this array, i find the duplicates. And now i want to find the count of duplicates. The only way to find the duplicate count is say => itemCount.ball
Dummy code -
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;
});
To find the count - do =>
itemCount.ball
I am finding difficulty in finding this individual count like done above. My Code -
app.component.ts - Angular2+
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.log("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.log("duplicateResult, forEach = count = ",
itemCount)
for (var i = 0; i < duplicateResult.length; i++) {
console.log(" 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
Output -
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}
I searched the entire web but there is no other working way where i am able to determine a code that gives the count in some other way. Please help in determining a way to fetch the node count or maybe over here is there a way to fetch the node count. I am unable to do so.
If i do this -
for (var i = 0; i < duplicateResult.length; i++) {
console.log(" individual count = ", itemCount.duplicateResult)
}
I get error -
Property 'duplicateResult' does not exist on type '{}'.
Reference -