Javascript 已排序的响应变为未排序的om前端jquery laravel
排序后,我将从laravel控制器发送响应。对响应进行排序Javascript 已排序的响应变为未排序的om前端jquery laravel,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,排序后,我将从laravel控制器发送响应。对响应进行排序 public function search(Request $request) { $providers = Provider::get()->map(function($item) use($request){ $item->setAttribute('distance',$this->addDistanceToProvider($item,$request)) ;
public function search(Request $request)
{
$providers = Provider::get()->map(function($item) use($request){
$item->setAttribute('distance',$this->addDistanceToProvider($item,$request)) ;
return $item;
})->sortBy('distance');
return $providers;
}
回应
{"1":{"id":2,"owner_name":"hjjk","owner_email":"bilal@gmail.com","owner_phone":"4567898765432","name":"hgjjj","email":"devyempresas@gmail.com","phone":"","password":"$2y$10$9KmwSmKcxQNHxN6\/KmViQOVgGOIbsTxnPDd.prkTpK9BfVMJ0CXpm","rfc":"12344","tax":"67","location":"Nezahualc\u00f3yotl, State of Mexico, Mexico","longitude":"-98.9896643","latitude":"19.3994934","comission":76,"status":1,"distance":314.703},"2":{"id":3,"owner_name":"abc","owner_email":"asphaltairborne316@gmail.com","owner_phone":"06767672626","name":"Bilal Arshad","email":"swift.solutions.com@gmail.com","phone":"","password":"$2y$10$mLRpt7O2o0wdg8AecgpWA.4xfN9hV4VaG.JRSZyr\/hUoKPjkCkdvm","rfc":"asd","tax":"234","location":"Cuernavaca, Morelos, Mexico","longitude":"-99.22156590000002","latitude":"18.9242095","comission":113,"status":1,"distance":369.312},"0":{"id":1,"owner_name":"bilal","owner_email":"swift.solutions.com@gmail.com","owner_phone":"0213123132131","name":"Bilal Arshad","email":"admin@admin.com","phone":"","password":"$2y$10$BUgsN4Qknk2M\/LNQwQoOrOOad.pu9dFQUiylFSSTgaRrQwDIbDhqG","rfc":"12344","tax":"dasdasd","location":"Nuevo Laredo, Tamaulipas, Mexico","longitude":"-99.68859527909136","latitude":"27.784235863652583","comission":877,"status":1,"distance":1034.684}}
但当我在brwoser中看到预览时,它并没有排序,Jquery以未排序的形式呈现数据
Jquery函数
$.each(data, function(index, provider) {
embedData(index,provider)
});
函数嵌入数据(索引、提供程序){
$(“#提供程序_区域”)。追加(`
距离:
${provider.distance}
`)
}
因为对象在javascript中是未排序的,所以您可以尝试按如下方式对它们进行排序
//假设变量数据包含响应数据
//将对象的对象转换为对象数组
设arr=Object.keys(data.map)((key)=>data[key]);
//按距离对对象数组进行排序
让排序=arr.sort((a,b)=>a.distance-b.distance);
//在函数中使用排序
$.each(已排序、函数(索引、提供程序){
嵌入数据(索引、提供程序)
});
因为对象在javascript中是未排序的,所以您可以尝试按如下方式对它们进行排序
//假设变量数据包含响应数据
//将对象的对象转换为对象数组
设arr=Object.keys(data.map)((key)=>data[key]);
//按距离对对象数组进行排序
让排序=arr.sort((a,b)=>a.distance-b.distance);
//在函数中使用排序
$.each(已排序、函数(索引、提供程序){
嵌入数据(索引、提供程序)
});
对象未排序。你的回答是一个对象。但看起来你已经对密钥进行了排序?我认为这是根据前面未排序的内对象上的ID进行排序。你的回答是一个对象。但看起来你已经订购了钥匙?我想这是在根据前端的ID进行排序
function embedData(index,provider){
$('#provider_area').append(` <div class="kt-widget5__item" ><div class="kt-widget5__content">
<div class="kt-widget5__section">
<a href="#" class="kt-widget5__title">
${provider.name}
</a>
<p class="kt-widget5__desc">
${provider.location}
</p>
<div class="kt-widget5__info">
<span>Distance:</span>
<span class="kt-font-info" >${provider.distance}</span>
</div>
</div>
</div>
<div class="kt-widget5__content">
</div></div>`)
}