我正在寻找对一些数据进行分组,然后将(我认为最好的方法,可能是错误的)映射到我创建的以下 JSFiddle 的数组中。
JSFiddle 显示了所需的结果以及我注释掉的一些方法。
我的代码如下:
var answers = [
{ 'question_id': 1, 'id': 1, 'answer': 'Cat' },
{ 'question_id': 1, 'id': 2, 'answer': 'Dog' },
{ 'question_id': 2, 'id': 3, 'answer': 'Fish' },
{ 'question_id': 2, 'id': 4, 'answer': 'Ant' }
];
var result=_.chain(answers).groupBy("question_id").map(function(v, i) {
return {
question_id: i,
// id: _.get(_.find(v, 'id'), 'id'),
answers:[
{id: 1, answer: 'Cat'},
{id: 2, answer: 'Dog'},
// {id: _.map(v, 'id'), answer: _.map(v, 'answer'),}
]
}
}).value();
document.body.innerHTML = '<pre>' + JSON.stringify(result, null, ' ') + '</pre>';
最佳答案
你就快到了。要获得没有“question_id”的答案,您需要映射它们和 omit该属性(property)。这可以使用 map 函数来完成:
answers: _.map(v, function(answer){
return _.omit(answer, 'question_id');
}
或者使用已经应用了一些参数的省略函数,然后将其用作 map 的函数:
var omitQuestion = _.partialRight(_.omit, 'question_id');
answers: _.map(v, omitQuestion)
关于javascript - 使用 lodash 将数据分组然后映射到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41831922/