为什么数组在响应中总是为空?

编程入门 行业动态 更新时间:2024-10-10 10:31:37

为什么<a href=https://www.elefans.com/category/jswz/34/1771288.html style=数组在响应中总是为空?"/>

为什么数组在响应中总是为空?

我正在端点上调用以下方法

exports.allConversations = async (req, res) => {
    // The recipient of the call, a phone number or a client
    console.log(req.body);
    let phoneNumber = req.body.phoneNumber;
    let messageSent, messageReceived;
    try {
        let messageSentPromise = client.messages
            .list({
                from: phoneNumber,
                limit: 20
            });
        let messageReceivedPromise = client.messages
            .list({
                to: phoneNumber,
                limit: 20
            });
        [messageSent, messageReceived] = await Promise.all([messageSentPromise, messageReceivedPromise]);

        let conversations = [];
        for (let i = 0; i < messageSent.length; i++) {
            let message = messageSent[i];
            if (conversations.includes(message.to))
                conversations[message.to].push(message);
            else {
                console.log([].push(message));
                conversations[message.to] = [message];
            }
        }
        console.log(conversations);
        return res.status(200).send({
            conversations: conversations
        });
    }
    catch (error) {
        console.log(error);
        return res.status(200).json({
            success: false
        });
    }
}

console.log(conversations);在响应中,我始终会收到一个空数组,但以下代码上方的console.log

return res.status(200).send({
                conversations: conversations
            });

在控制台上打印阵列。

回答如下:

我认为问题可能是由于数组索引不是实际的正整数。可能导致异常行为,如下面的代码片段所示:

let result = [];
result["test"]="test";
console.log(result); // depending on the implementation can still log `[test: "test"]` works in firefox for instance
console.log(JSON.stringify(result)); // will always log `[]`

仅确保您的索引实际上是有效的数组索引或使用对象,就像下面的代码中所示

    let conversations = {};
    for (let i = 0; i < messageSent.length; i++) {
        let message = messageSent[i];
        if (conversations[message.to]) conversations[message.to].push(message);
        else conversations[message.to] = [message];
    }
    console.log(conversations);
    return res.status(200).json({conversations});

更多推荐

为什么数组在响应中总是为空?

本文发布于:2024-05-06 19:28:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753724.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   为空

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!