Hi I have an array of objects. Each object has an array of objects. I need to find duplicates of (inner) objects that have the same value in a specific property. I made up to create a loop inside the loop and use include.
Is there a shorter way of doing this?
// Verify that there are no duplicate device names.
const streamItemNames = [];
for (let i = 0, length1 = validateStreamItemsResults.streamWebSockets; i < length1; i++) {
const streamItems = validateStreamItemsResults.streamWebSockets[i].streamItems;
for (let y = 0, length2 = streamItems.length; y < length2; y++) {
const streamItem = streamItems[i];
const streamItemNameLower = streamItem.streamItemName.trim().toLowerCase();
if (streamItemNames.includes(streamItemNameLower)) {
validateStreamItemsResults.errorMessage = `Duplicate stream items found with the name: ${streamItemNameLower}`;
return validateStreamItemsResults;
} else {
streamItemNames.push(streamItemNameLower);
}
}
}
UPDATE:
The structure of the objects is the following, for example:
(I need to determine with true or false if there are duplicates "streamItemName" - In the case of this example - true).
const childArray1 = [ { streamItemName: 'Name1' }, { streamItemName: 'Name2' }, { streamItemName: 'Name3' }, { streamItemName: 'Name4' }];
const childArray2 = [ { streamItemName: 'Name5' }, { streamItemName: 'Name6' }, { streamItemName: 'Name7' }, { streamItemName: 'Name1' }];
const parentArray = [childArray1, childArray2];