javascript - 如何按首字母对列表进行分组?

标签 javascript php laravel

我有一个 list ,我需要制作类似的东西:

A.

Andrei


Andreea

B.

Bogdan

Borris

等等

现在我有一个 JavaScript 可以按字母顺序排列我的列表,但我不知道如何用第一个字母插入该函数。您能帮我吗?

这是我的代码:

     <ul style="list-style: none;right: 40px; position: relative" id="destPopuler">
           @foreach($users->contact as $user)

                     @if( $user->role[0]->pivot->role_id == 1 )
           <li class="country"><input class="my_div" id="{{$user->username}}" name="target_id[]" type="checkbox" value="{{ $user->id }}" <?php if(isset($replyMessage)){ if($replyMessage == $user->id) { echo "checked"; } } ?>><span style="padding: 5px" class="name">{{ $user->username }}</span></li>
                     @endif

                 @endforeach
</ul>

function sortList(ul) {
  var ul = document.getElementById(ul);

  Array.from(ul.getElementsByTagName("LI"))
    .sort((a, b) => a.textContent.localeCompare(b.textContent))
    .forEach(li => ul.appendChild(li));
}

sortList("destPopuler");

这是我想要的东西:jQuery Grouping by first letter ,但我不知道根据我的代码到底如何插入它。

最佳答案

您可以在 Laravel 端提供此信息 -

 ... public function users() 
     {
         $users = Users::all();

         $groupedUsers = $users->groupBy(function($item,$key) {
             return $item->username[0]; 
         })->sortBy(function($item,$key){      
             return $key;
         });

         return view('users', ['users' => $groupedUsers]);
     }

或者,如果你想使用你的函数,你可以将你的js代码放在javascript部分:

在你的布局中你应该包含 -

      @yield('js')

在你看来 -

      @section('js')
         // your js function
      @endsection

关于javascript - 如何按首字母对列表进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58287300/

相关文章:

javascript - 验证需要匹配特定条件(正则表达式)的字符串?

php - 将所有 RGB 值存储在数据库中

laravel 安装获取 key 在 ubuntu 操作系统中生成错误

laravel - Laravel 5 中的 whereHas() 中的多个 orWhere()

laravel - 如何像格式化数组一样使用 monolog 记录多行条目?

java - 在浏览器环境之外充分实现 WebGL 兼容性所需的最少功能是什么?

javascript - 使用 JavaScript 的 Chrome 和 Safari XSLT

php - 这个正则表达式如何扩展和工作?

php - 将 "curly"引号与数据库查询中的标准引号匹配

ColdFusion 中的 Javascript 变量