javascript - 格式化对象数组输出

标签 javascript

我有一组对象,我试图在使用过滤器和减少后使输出正确显示。

它正在正确输出数据,但不是我想要的格式。非常感谢任何输入。

电流输出

{
 5: 12,
 6: 15,
 7: 12,
 ...
}

预期输出

{
 session5-count: 12,
 session6-count: 15,
 session7-count: 12,
 ...
}

我敢肯定这是一件非常简单的事情,而且我还没有吃午饭,所以可能会阻碍我的思考过程。

这是我的公式和示例数据

更新的功能

感谢 alex-gzfrisch

const sessionsArray = [
    { session: '5', status: 'inactive' },
    { session: '5', status: 'inactive' },
    { session: '5', status: 'inactive' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '5', status: 'active' },
    { session: '6', status: 'active' },
    { session: '6', status: 'active' },
    { session: '7', status: 'inactive' },
    { session: '7', status: 'inactive' },
    { session: '7', status: 'inactive' },
    ];

const filteredSessions  = sessionsArray
    .reduce( (acc, {session, status}) => {

        if(status != 'active'){
           acc["session-" + session ] = 0
        }else{           
            acc["session-" + session ] =
            acc["session-" + session ] + 1 || 1
        } 
        
        return acc
    }, {}) 

console.log(filteredSessions )

我正在努力跟进并使用 THIS S.O. ANSWER帮助格式化我的输出

最佳答案

您可以使用模板字符串来获取所需的 key 格式。像这样:

const sessionsArray = [
{ session: '5', status: 'inactive' },
{ session: '5', status: 'inactive' },
{ session: '5', status: 'inactive' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '5', status: 'active' },
{ session: '6', status: 'active' },
{ session: '6', status: 'active' },
{ session: '7', status: 'inactive' },
{ session: '7', status: 'active' },
{ session: '7', status: 'active' },
];

const filteredSessions = sessionsArray
    .filter(workshop => workshop.status === 'active')
    .reduce( (acc, { session }) => {
        
        acc[`session${session}-count`] = acc[`session${session}-count`] + 1 || 1;
        
        return acc;
    }, {});

console.log(filteredSessions)

关于javascript - 格式化对象数组输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53769105/

相关文章:

javascript - 否则将无法使用 'document.getElementById()'

javascript - 动画图像轮播

javascript - Google 数据层数据未传递到标签管理器助手

javascript - 如何创建模型实例并加载它?

javascript - 如何在for循环中使用变量

javascript - Google map HTMLMarker(循环不同位置)

javascript - 如何使用基石解析 JavaScript 中的 DICOM?

javascript - 限制 Keyup 上 AJAX 请求的触发次数

javascript - ECMAScript 5 定义 - 构造和继承的通用工厂模式,[ Object.create()]

JavaScript window.location.replace 在 Firefox 中有效,但在 IE 或 Chrome 中无效