filter complex data structure

Will be used for validation

by dfederighi

JavaScript

YUI().use('node', function(Y) {
   
var errors = ['Amount','ViewPassword'];    
    
var data = [{
    label: 'Basics',
    contents: [{
        label: 'Sort',
        name: 'Sorting',
        type: 'select'
    },
    {
        label: 'Amount',
        name: 'Amount',
        type: 'text'
    },
    {
        label: 'Sigma',
        name: 'UnsharpSigma',
        type: 'text'
    }]
},
{
    label: 'Privacy',
    contents: [{
        label: 'Right-Click Protected',
        name: 'Protected',
        type: 'toggle'
    },
    {
        label: 'Choose Watermark',
        name: 'WatermarkID',
        type: 'select'
    },
    {
        label: 'Web Searchable',
        name: 'WorldSearchable',
        type: 'toggle'
    },
    {
        label: 'Password',
        name: 'ViewPassword',
        type: 'text'
    }]

}];
    
    var errorsFound = {};
    Y.Array.each(data, function(item, index) {
        var label = item.label;
        
        itemErrors = item.contents.filter(function(content) {
            return errors.indexOf(content.name) != -1
        });
        
        if (itemErrors.length > 0) {
            errorsFound[label] = true;
        }
    });
    
    console.log('errorsFound:', errorsFound);
    
});