본문 바로가기
TIL

[231010] 방명록 기능 검토, 문자열 내 문자 내림차순 정렬

by 진진리 2023. 10. 10.
728x90
  • 메인 페이지에 최신 방명록 3개를 불러오는 코드
src = "https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"
src = "https://www.gstatic.com/firebasejs/8.8.1/firebase-database.js"
src = "https://www.gstatic.com/firebasejs/8.8.1/firebase-analytics.js"
src = "https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"

$(document).ready(async function () {
    const firebaseConfig = {
        //...
    };

    firebase.initializeApp(firebaseConfig);
    const database = firebase.database();

    //방명록 불러오는 부분
    const dbRef = database.ref('logs').orderByChild('ups').limitToLast(3);
    dbRef.on("value", (snapshot) => {
        snapshot.forEach((child) => {

            const object = child.val();
            let temp = `
            <p>${object.content} (${object.name})</p>
            `

            $('#visit-comment').append(temp);

        });
    });
    //방명록 불러오는 부분 끝남
});
const dbRef = database.ref('logs').orderByChild('ups').limitToLast(3);

- 데이터 정렬 방식: orderByChild()

지정된 하위 키를 포함하는 데이터가 다음과 같이 정렬됨

null > false > true > 숫자, 사전 오름차순

'ups': 오름차순 정렬 - child의 고유키 순서대로

+++ firebase 실시간 데이터베이스는 firestore와 달리 push()가 생성하는 id가 타임 스탬프에 기반하기 때문에 시간 순으로 정렬됨

- 정렬 함수 뒤에 붙는 제한 쿼리 limitToLast()

지정된 숫자만큼 정렬된 마지막 메시지를 수신

 

dbRef.on("value", (snapshot) => {

dbRef에서 가져온 데이터 snapshot

 

 

  • 방명록에 랜덤 프로필 추가
let profiles = ['apeach','muzi','neo','prodo','ryan'];
var random_index = Math.floor(Math.random() * profiles.length);
var pfp = profiles[random_index];

Javascript 난수 생성하기

1. Math.random(): 0~1 사이의 부동소수덤 난수를 생성

2. Math.floor(): 소수점 1번째 자리를 버림하여 리턴하는 함수

-> random_index 생성

 

db에 'pfp' 필드 추가하여 저장

let temp = ` ...
       
<span><img class="pfp" , src="./image/minsun/pfp/${object.pfp}.png" , alt="pfp"></span>
...`

방명록을 불러올 때 pfp.png로 저장한 사진을 함께 불러옴

 

 

  • Java 문자열 내의 문자를 내림차순으로 정렬하는 법

https://jinjinjincode.tistory.com/103

 

[프로그래머스] 문자열 내림차순으로 배치하기(Java)

import java.util.Arrays; class Solution { public String solution(String s) { char[] char_arr = s.toCharArray(); Arrays.sort(char_arr); String str = new String(char_arr); String answer = ""; int len = str.length(); for(int i=0;i

jinjinjincode.tistory.com