如何将Slate查询的返回格式从列更改为行



我的查询结果看起来像:

{
col1: [values],
col2: [values]
}

有没有办法让我的查询以行对象列表的形式返回?

最好的方法是编写一个函数来转换查询响应。

一个例子:

function transformColumnSchemaToRowSchema(data) {
var keys   = _.keys(data);
var arrays = _.values(data);


var arrayOfPropertyLists = _.zip.apply(_, arrays);


var arrayOfObjects = _.map(arrayOfPropertyLists, function(list) {
var obj = {};


_.each(keys, function(key, i) {
obj[key] = list[i];
});


return obj;
});


return arrayOfObjects;
}

或者更紧凑的版本:

var data = {{q_some_query}};
delete data['_response']
var newdata = _.zip.apply(_, _.values(data)).map((val) => _.zipObject(_.keys(data), val));

转换为此格式后,可能需要转换回原始格式(例如,如果要将数据放入Slate中的表小部件中(。这就是可以做到的:

var original_fmt = {};
_.forEach(_.keys(newdata[0]), function(k) {
original_fmt[k] = _.map(newdata, k);
});
// use original_fmt

最新更新