Friday 21 April 2017

Refactoring nested array comparison iterators (loops)

Can anyone point me in the right direction on whether I am iterating over two arrays correctly. Is there any other ways to compose my code without nesting the iterators?

The code below iterates over two object arrays comparing values using the underscore library. I originally wrote the these using nested for loops.

Again I'm not asking for a direct answer, I'm self taught and I sometimes feel like do things completely opposite to how they should be done.

function getFilesAdded( directoryData ) {
    return new Promise(function( resolve, result ) {
        _.each(liveDirectories, function( liveDirectory ) {
            _.each(directoryData, function( directory ) {
                if ( directory.DirectoryName === liveDirectory.DirectoryName && directory.Files.length > liveDirectory.NumOfFiles ) {
                    var filesAdded = [];
                    numOfFilesAdded = directory.Files.length - liveDirectory.NumOfFiles;
                    fileArray = orderByTimeAdded(directory.Files, directory.DirectoryName);
                    fileArray.slice(0, numOfFilesAdded).forEach(pushToArray(filesAdded))
                    liveDirectory.NumOfFiles = directory.Files.length;
                    filesAddedCount === 0 ? (filesAddedCount++, reject()) : (resolve(_.sortBy(filesAdded, 'FileName')));
                }
            })
        })
    })
}



via CBainbridge

No comments:

Post a Comment