Довелось решать тестовое задание на JavaScript. Задача была в реализации функции парсинга CSV:
var csv_by_name = compile_csv_search(
"ip,name,desc\n"+
"10.49.1.4,server1,Main Server\n"+
"10.52.5.1,server2,Backup Server\n",
"name");
console.log(csv_by_name("server2"));
console.log(csv_by_name("server9"));
..will print:
{ip: "10.52.5.1", name: "server2", desc: "Backup Server"}
undefined
(The return values are objects, not strings.)
Мое решение задачи выглядело следующим образом:
function compile_csv_search(text, byField) {
var text = text.split('\n'),
headers = text[0].split(','),
byIndex = 0;
$.each(headers, function (index, field) {
if (field == byField)
byIndex = index;
});
text.shift();
text.pop();
return function (needle) {
var curEl = '',
result = {};
$.each(text, function (i, element) {
curEl = element.split(',');
if (curEl[byIndex] == needle) {
$.each(headers, function (index, header) {
result[ headers[index] ] = curEl[index];
});
return;
}
})
return result;
}
}
Решение было расценено как недостаточно качественное. Помогите, пожалуйста, разобраться в причинах такой оценки, так как ответа от работодателя я не смог получить.