Javascript 如何通过在JS中将消息分组来推送到子阵列?

Javascript 如何通过在JS中将消息分组来推送到子阵列?,javascript,php,jquery,Javascript,Php,Jquery,我不确定该如何命名这个问题,但我会尽力解释我的问题。目前,我有一个PHP数组,其中包含一些条目 Array ( [0] => stdClass Object ( [sender_id] => 0 [message] => Test [created_at] => 2020-03-12 16:26:23 ) [1] => stdClass Obje

我不确定该如何命名这个问题,但我会尽力解释我的问题。目前,我有一个PHP数组,其中包含一些条目

Array
(
    [0] => stdClass Object
        (
            [sender_id] => 0
            [message] => Test
            [created_at] => 2020-03-12 16:26:23
        )

    [1] => stdClass Object
        (
            [sender_id] => 0
            [message] => Hello
            [created_at] => 2020-03-12 13:47:47
        )
)
我需要的是一种方法,通过创建的_在日期对每个条目进行分组,以便我的结果如下所示:

Array
(
    [2020-03-12] => Array
        (
            [0] => stdClass Object
                (
                    [sender_id] => 0
                    [message] => Test
                    [created_at] => 2020-03-12 16:26:23
                )

            [1] => stdClass Object
                (
                    [sender_id] => 0
                    [message] => Hello
                    [created_at] => 2020-03-12 13:47:47
                )
        )

)
为了实现这一点,我使用PHP完成了以下工作:

$grouped = [];

foreach ( $messages as $message ) {
    $created_at_date = date( 'Y-m-d', strtotime( $message->created_at ) );
    $grouped[ $created_at_date ][] = $message;
}
但是现在我遇到了一个问题,所以我决定用JS来完成这个任务。首先,我用PHP对数组进行了编码,并将其设置为
标记中的一个变量:

<script>
    let messages = <?= ! empty( $messages ) ? json_encode( $messages ) : '[]' ?>;
</script>

我想你缺少的是:

jQuery( messages ).each( function ( index, message ) {
    let createdAtDate = new Date( message["created_at"] ).toLocaleDateString( navigator.language, {
        day: "2-digit",
        month: "2-digit",
        year: "numeric"
    } );

    if(typeof groupedMessages[createdAtDate] === 'undefined'){
        groupedMessages[createdAtDate] = [];
    }

    groupedMessages[createdAtDate].push(message);
} );

看@Barmar这让我很困惑。我不明白其中的逻辑:/JavaScript没有使用赋值到
[]
来推送到数组上,这只是在PHP中。JS使用了
.push()
方法。[完美!非常简单……但我擅长PHP,还不是JS,谢谢你的帮助!