gpt4 book ai didi

javascript - 使用特定标准对对象数组进行分组

转载 作者:行者123 更新时间:2023-11-28 00:01:38 25 4
gpt4 key购买 nike

此问题与 this other question 相关.

很抱歉,我找不到解决方案。我需要对 this fiddledataObject 给出的对象数组进行分组通过属性 objetivo ,其属性为:idindicadoresobjetivoperspetiva .

这是我的代码:

var res = dataObject.reduce(function(res, currentValue) {
if ( res.indexOf(currentValue.objetivo) === -1 ) {
res.push(currentValue.objetivo);
}
return res;
}, []).map(function(objetivo) {
return {
objetivo: objetivo,
indicadores: dataObject.filter(function(_el) {
return _el.objetivo === objetivo;
}).map(function(_el) { return _el.indicador; }),
perspetiva: dataObject.perspetiva,
id: dataObject.id
}
});

console.log(res);

它按 objetivo 正确分组,但为 perspetivaid 返回未定义。

感谢您的帮助,如果这与其他问题重复,我们深表歉意。

最佳答案

您正在尝试访问 dataObject.id.perspetiva,但 dataObject 是您的主数组并且没有这些字段.

reduce挑选出唯一的objetiva之后,返回并查找它们来自的项目:

.map(function(objetivo) {
var items = dataObject.filter(function(_el) {
return _el.objetivo === objetivo;
});

然后你就可以找到所有的indicador,而且对于具有相同的项目来说,idperspetiva看起来是一致的>objetiva,您可以从第一个中选择。

    return {
objetivo: objetivo,
indicadores: items.map(function(_el) { return _el.indicador; }),
perspetiva: items[0].perspetiva,
id: items[0].id
}

这是a working fiddle .

关于javascript - 使用特定标准对对象数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com