v2.5.2
Giriş yap

divleri içindeki veriye göre sıralamak

memdhaci
474 defa görüntülendi

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

Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (7)
abdullahx
1138 gün önce
<button data-type="1" class="sirala">Sırala</button>
<button data-type="2" class="sirala">Eski Haline getir</button>

<div class="container">

</div>
HTML
  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)
          })
      }
    })
JavaScript

Bunu dener misin?

memdhaci
1138 gün önce

@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 );
)};
JavaScript
abdullahx
1141 gün önce

Hocam hiçbir data vermeden cevap arıyorsunuz, gerçekten tatmin edici bir yanıt alabilmeyi umuyor musunz?

memdhaci
1141 gün önce

@house2k merhaba benim kodlarım js ile yazıldığı için ve php bilmediğim için attığın örneği anlayamadım

house2k
1141 gün önce

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); 
?>
PHP

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.

memdhaci
1142 gün önce

@hasanablak objeleri sıralıyor fakat ben bir butona basınca arrayi sort ediyorum
başka bir butona basınca geri eski haline döndürmek için ne yapmalıyım?

hasanablak
1146 gün önce

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 );