divleri içindeki veriye göre sıralamak
merhaba, arrayin içindeki objelerden alınan veriler ile ve foreach ile alt alta listelenmiş divlerim var
divleri içlerindeki sayıya göre nasıl listelerim
örneğin divlerin içinde yazan sayı en büyük olan en üste geliyor
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (7)
<button data-type="1" class="sirala">Sırala</button>
<button data-type="2" class="sirala">Eski Haline getir</button>
<div class="container">
</div>
let array = [
{
value: 100
},
{
value: 80
},
{
value: 60
},
{
value: 110
}
],
defaultOrders = [...array]
const container = document.querySelector(".container")
function compare(a, b) {
if ( parseFloat(a.value) > parseFloat(b.value) ){
return -1;
}
return 0;
}
[...document.querySelectorAll(".sirala")].forEach(buttons => {
buttons.onclick = function() {
this.dataset.type === '1' ? array.sort(compare) : array = [...defaultOrders]
container.innerHTML = ''
array.forEach(value => {
let div = document.createElement("div")
div.innerText = value.value
container.appendChild(div)
})
}
})
Bunu dener misin?
@abdullahx
arrayin içindeki objeleri butona basarak büyükten küçüğe sıralıyorum başka bir butona basınca da büyükten küçüğe sıralamadan önceki haline gelmesini istiyorum olay bu hocam
let array = [
{
value: 100
},
{
value: 80
},
{
value: 60
},
{
value: 110
},
]
function compare( a, b ) {
if ( parseFloat(a.value) > parseFloat(b.value) ){
return -1;
}
return 0;
}
$('button').click(function({
array.sort( compare );
)};
Merhaba istediğiniz sistem ile ilgili olarak aşağıdaki verdiğim örneği inceleyebilirsiniz.
<?php
$urunler = array(
0 => array(
'URUN_AD' => 'Cep Telefonu',
'URUN_FIYAT' => 1250.32,
),
1 => array(
'URUN_AD' => 'Bardak',
'URUN_FIYAT' => 23.5,
),
2 => array(
'URUN_AD' => 'Masa',
'URUN_FIYAT' => 352,
),
3 => array(
'URUN_AD' => 'Bilgisayar',
'URUN_FIYAT' => 2499.99,
)
);
$tmpArray = array(); // Sıralanmasını istediğimiz alanı buraya aktracağız
foreach($urunler as $key => $value){
$tmpArray[$key] = $value['URUN_FIYAT'];
}
array_multisort($tmpArray, SORT_DESC, $urunler); // ESAS ALINACAK SIRALAMA DIZISI, SIRALAMA TİPİ, ANA DIZI
print_r($urunler);
?>
Dip Not: Sorunuz veya yardıma ihtiyacanız olursa yazabilirsiniz. Sorununuzun çözülmesi halinde yorumu doğru işaretleyebilir ve bana sorunun çözüldüğüne dair bir doğrulama sağlayabilirsiniz. Eğerki sorununuz çözüme kavuşmadı ise sorununuzu yazıp bu yorumu beğenirseniz tekrardan sizlere geri dönüş sağlarım.
function compare( a, b ) {
if ( a.last_nom < b.last_nom ){
return -1;
}
if ( a.last_nom > b.last_nom ){
return 1;
}
return 0;
}
objs.sort( compare );