Попытка изменить объект, чтобы подготовить его для отправки, взяв массив внутрь и превратив его в объект с элементами в массиве, являющимися ключами со значениями true.Javascript (Underscore), функция изменения объекта javascript
Он начинает выглядеть как -
{"state":["Saved","Published"],"discipline":["Marketing"]}
Таким образом, конечный результат будет выглядеть
{"state":{"Saved":true,"Published":true},"discipline":{"Marketing":true}}
Так он просто смотрит на этот массив и изменяет его на объект со значениями верно. Я пытаюсь использовать подчеркивание, но простой js будет работать нормально.
Вот моя попытка, есть ли лучший способ сделать это, может быть, с подчеркиванием? -
function transformOutputToFilterModel(model) {
var transformedObj = _.map(model, function(obj) {
return obj.reduce(function(obj, k) {
obj[k] = true;
return obj;
}, {})
});
return transformedObj;
}
Спасибо за чтение!
Редактировать - извините, что я отметил ответ, не понимая, что это не совсем верно. У меня есть эта функция -
var transformedObj = _.map(model, function(obj) {
return obj.reduce(function(obj, k) {
obj[k] = true;
return obj;
}, {});
});
это делает форматирование внутри объекта правильно, однако она стаскивать внешние ключи - смотрите здесь: https://jsfiddle.net/d0kjctfh/3/
Того внешний objecst должен иметь ключи от состояния и дисциплин, как это -
{"state":{"Saved":true,"Committed":false,"Published":false},"discipline":{"Marketing":true}};
Спасибо!
закончил с этим, спасибо! – ajmajmajma