JSFiddle - React, Tailwind, and code Playground
by cmruser
JavaScript
function countItems(
data= [],
condition
) {
if (data === null || data === undefined) {
return [];
}
return data.reduce((acc, item) => {
const itemId = `${item.id}`;
acc.push(itemId);
if (condition(item)) {
const childItems = countItems(item.data, condition);
acc.push(...childItems);
}
return acc;
}, []);
}
// Example usage of the countItems function
const data = [
{
id: 1,
dataType: 'block',
data: [
{
id: 2,
data: null
},
{
id: 3,
data: [
{
id: 4,
data: null
},
{
id: 5,
data: null
}
]
},
{
id: 6,
data: null
}
]
},
{
id: 7,
data: [
{
id: 8,
data: null
}
]
}
];
// Example condition function
function isEven(item) {
return item.dataType == 'block';
}
// Call the countItems function
const result = countItems(data, isEven);
// Output the result
console.log(result);