/** * Gibt die größten n Elemente eines Arrays zurück * * @param ar * @param n */ export function getTopXfromArray(ar, x) { return ar.sort((a, b) => b - a).slice(0, x); }
Einen Array von Objekten mit Javascript nach Schlüssel auf-/absteigend sortieren
Erstellt in Allgemein am 12. März 2025 vom Daschmi
Mit folgender Funktion kann man mit Javascript einen Array der aus mehreren Objekten besteht auf- oder absteigend nach einem Schlüssel sortieren:
export function order_array(arr, key, direction = 'asc') { const ar = [...arr]; ar.sort((a, b) => { const wertA = a[key]; const wertB = b[key]; if (wertA < wertB) return direction === 'asc' ? -1 : 1; if (wertA > wertB) return direction === 'asc' ? 1 : -1; return 0; }); return ar; }
autocomplete / autofill im Chrome/PWA verhindern
Erstellt in Allgemein am 9. Februar 2025 vom Daschmi
Setzt man das Attribute „autocomplete“ auf einem Input Feld auf den Wert „one-time-code“ kommt es nicht mehr zum automatischen füllen durch Chrome.
<input type="text" name="email" id="email" autocomplete="one-time-code" />
Base64 Bild mit FPDF zeichnen
Erstellt in Allgemein am 6. Februar 2025 vom Daschmi
Um ein Bild, das als base64 String vorliegt mit FPDF zu zeichnen kann folgende Funktion verwendet werden.
function addBase64Image($base64Image, $x, $y, $w = 0, $h = 0) { list($type, $data) = explode(';', $base64Image); list(, $data) = explode(',', $data); $data = base64_decode($data); $tempFile = tempnam(sys_get_temp_dir(), 'fpdf') . '.png'; file_put_contents($tempFile, $data); $this->Image($tempFile, $x, $y, $w, $h); unlink($tempFile); }
Mehrere Dateien mit Javascript/FileReader einlesen und mit XHR an den Server senden
Erstellt in Allgemein am 12. Januar 2025 vom Daschmi
Möchte man mit Vue/Javascript Dateien eines Uplaod Feldes einlesen und an den Server senden, so kann man folgenden Code nutzen.
const fileToBase64 = (file) => { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => resolve(reader.result.split(",")[1]); // Nur Base64-Daten reader.onerror = () => reject(new Error(`Fehler beim Lesen von ${file.name}`)); reader.readAsDataURL(file); }); } const handle_upload = async () => { const arFiles = Array.from(ref_file.value.files); const base64Files = await Promise.all( arFiles.map(async (file) => { const base64 = await fileToBase64(file); return { name: file.name, type: file.type, base64: base64, }; }) ); console.log(base64Files); // ... base64Files an den Server senden mit fetch/xhr }