Skip to content

Instantly share code, notes, and snippets.

@syul
Created October 7, 2014 09:05
Show Gist options
  • Save syul/3608b3fe4cc2062082a5 to your computer and use it in GitHub Desktop.
Save syul/3608b3fe4cc2062082a5 to your computer and use it in GitHub Desktop.
compile_csv_search
var compile_csv_search = function(inputStr, searchField) {
var stringsArray = inputStr.split('\n'),
columnsArray = stringsArray[0].split(','),
columnsArrayLength = columnsArray.length;
return function search(value) {
var stringsArrayLength = stringsArray.length,
currentString, tmpObject, result;
for(var stringIndex = 1; stringIndex < stringsArrayLength && !result; stringIndex ++) {
currentString = stringsArray[stringIndex].split(',');
tmpObject = {};
for(var columnIndex = 0; columnIndex < columnsArrayLength; columnIndex ++) {
tmpObject[columnsArray[columnIndex]] = currentString[columnIndex];
if(columnsArray[columnIndex] === searchField && currentString[columnIndex] === value) {
result = tmpObject;
}
}
}
return result;
};
};
var str = 'ip,name,desc\n' +
'10.49.1.4,server1,Main Server\n' +
'10.52.5.1,server2,Backup Server\n';
var csv_by_name = compile_csv_search(str, 'name');
console.log(csv_by_name('server1'));
console.log(csv_by_name('server2'));
console.log(csv_by_name('server3'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment