Многомерный объект JS

260
20 апреля 2017, 16:56

Дана строка с опр. последовательностью

var text = "student study english\n student study math\nstudent study Music\n" +
"teacher teaches Ecology\nteacher teaches Math\nteacher teaches Physics";

Надо превратить строку в объект данных, например:

{
    student: {
        study:["english", "math", "Music"]
    },
    teacher: {
        teaches:["Ecology", "Math", "Physics"]
    }
}
Answer 1

var text = 'student study english\nstudent study math\nstudent study Music\n' 
  + 'teacher teaches Ecology\nteacher teaches Math\nteacher teaches Physics'; 
 
var data = text.split('\n').reduce(function(data, item) { 
  var parts = item.trim().split(/ +/); 
  if (3 <= parts.length) { 
    var target = parts.shift() 
      , action = parts.shift(); 
    if (!data[target]) { 
      data[target] = {}; 
    } 
    if (!data[target][action]) { 
      data[target][action] = []; 
    } 
    data[target][action].push(parts.join(' ')); 
  } 
  return data; 
}, {}); 
console.log(data);

READ ALSO
Почему не верно срабатывает проверка на тип данных?

Почему не верно срабатывает проверка на тип данных?

Ну для начала давайте разберемся с тем, что конструкторы стандартных типов не являются этими самыми типами как в других языкахОни все являются...

215
Форма без preventDefault отправляется, а с preventDefault не отправляется. Что делать?

Форма без preventDefault отправляется, а с preventDefault не отправляется. Что делать?

Есть форма, которая должна отправляться без перезагрузки, для этого я использую такой jquery код:

299
Настраиваемый аудиоплеер на Javascript

Настраиваемый аудиоплеер на Javascript

Я перерыл штук 100 разных плееров в гугл, но это что-то смешноеЯ был уверен что легко найду много библиотек для использования, а не смог найти...

256
Восстановить структура кода JS | CSS | HTML

Восстановить структура кода JS | CSS | HTML

Все время привожу код в строчку и всегда имел под рукой online сервисы для восстановления структуры- Были проблемы с компом и все сервисы потерял

284