• Nov 19, 2022 •CodeCatch
0 likes • 4 views
const deepMerge = (a, b, fn) => [...new Set([...Object.keys(a), ...Object.keys(b)])].reduce( (acc, key) => ({ ...acc, [key]: fn(key, a[key], b[key]) }), {} ); deepMerge( { a: true, b: { c: [1, 2, 3] } }, { a: false, b: { d: [1, 2, 3] } }, (key, a, b) => (key === 'a' ? a && b : Object.assign({}, a, b)) ); // { a: false, b: { c: [ 1, 2, 3 ], d: [ 1, 2, 3 ] } }
• Oct 15, 2023 •LeifMessinger
0 likes • 7 views
//Disclaimer: I do not condone mass web scraping of ESPN websites, and this is just theoretical code that hasn't been used. //Scrape player stats off of https://www.espn.com/nfl/team/roster/_/name/phi/philadelphia-eagles //Example player JS object /* { "shortName": "S. Opeta", "name": "Sua Opeta", "href": "http://www.espn.com/nfl/player/_/id/3121009/sua-opeta", "uid": "s:20~l:28~a:3121009", "guid": "dec19157-e984-f981-3724-498281328c97", "id": "3121009", "height": "6' 4\"", "weight": "305 lbs", "age": 27, "position": "G", "jersey": "78", "birthDate": "08/15/96", "headshot": "https://a.espncdn.com/i/headshots/nfl/players/full/3121009.png", "lastName": "Sua Opeta", "experience": 4, "college": "Weber State" } */ //The page needs to be focused, so you have to put this code in a bookmarklet and click the page before clicking it. Allegedly. navigator.clipboard.writeText(JSON.stringify( window["__espnfitt__"].page.content.roster.groups.flatMap((group)=>{ return group.athletes.map((athlete)=>{ //We can assume all football players are above 100 lbs and below 1000 lbs. athlete.weight = parseInt(athlete.weight.substring(0,3)); if(athlete.experience == "R") athlete.experience = 0; else athlete.experience = parseInt(athlete.experience); //We can assume players are at least 1 foot, or under 10 feet tall. athlete.inches = 12 * parseInt(athlete.height.substring(0, 1)); //Add feet in inches athlete.inches += parseInt(athlete.height.substring(2).replaceAll("\"", "").trim()); //Add remaining inches const monthDayYear = athlete.birthDate.split("/"); athlete.birthMonth = parseInt(monthDayYear[0]); athlete.birthDay = parseInt(monthDayYear[1]); athlete.birthYear = parseInt(monthDayYear[2]); //The only really useful stuff we get from this is Height, weight, left handedness, age, position, and birthday return athlete; }); }) , null, "\t")).then(null, ()=>{alert("That failed.")}); //Changes all the team links on this page https://www.espn.com/nfl/stats/team to the team's roster for easier scraping $$("table > tbody > tr > td > div > div > a").forEach((elm)=>{ elm.setAttribute("href", elm.getAttribute("href").replace("team/", "team/roster/")); });
• Apr 10, 2025 •hasnaoui1
0 likes • 11 views
const express = require('express') const mongoose = require('mongoose') const cors = require('cors') const dotenv = require('dotenv') const server = express() dotenv.config() server.use(express.json()) server.get('/' , (req , res)=>{ res.send('Hello') }) //4.lancement du serveur server.listen(process.env.PORT , ()=>{ console.log('server run on http://localhost:'+process.env.PORT) })
• Oct 16, 2023 •C S
0 likes • 10 views
class TreeNode { constructor(data, depth) { this.data = data; this.children = []; this.depth = depth; } } function buildNaryTree(hosts) { const nodeMap = {}; // Step 1: Create a map of nodes using fqdn as the key hosts.forEach((host) => { nodeMap[host.fqdn] = new TreeNode(host, 0); // Initialize depth to 0 }); // Step 2: Iterate through the array and add each node to its parent's list of children hosts.forEach((host) => { if (host.displayParent) { if (nodeMap[host.displayParent]) { const parent = nodeMap[host.displayParent]; const node = nodeMap[host.fqdn]; node.depth = parent.depth + 1; // Update the depth parent.children.push(node); } else { console.error(`Parent with fqdn ${host.displayParent} not found for ${host.fqdn}`); } } }); // Find the root nodes (nodes with no parent) const rootNodes = hosts.filter((host) => !host.displayParent).map((host) => nodeMap[host.fqdn]); return rootNodes; } function treeToObjects(node) { const result = []; function inOrder(node) { if (!node) { return; } // Visit the current node and add it to the result result.push(node.data); // Visit children nodes first node.children.forEach((child) => { inOrder(child); }); } inOrder(node); return result; } // Usage example const hosts = [ { fqdn: 'fqdn_1', display_name: 'Host 1', }, { fqdn: 'fqdn_2', display_name: 'Host 2', displayParent: 'fqdn_1', }, { fqdn: 'fqdn_3', display_name: 'Host 3' }, { fqdn: 'fqdn_4', display_name: 'Host 4', displayParent: 'fqdn_3', }, { fqdn: 'fqdn_5', display_name: 'Host 5', displayParent: 'fqdn_1', }, ]; const tree = buildNaryTree(hosts); // Function to convert the tree to an array of objects function convertTreeToArray(nodes) { const result = []; nodes.forEach((node) => { result.push(...treeToObjects(node)); }); return result; } // Convert the tree back to an array of objects const arrayFromTree = convertTreeToArray(tree); console.log(arrayFromTree);
• Jan 26, 2023 •AustinLeath
0 likes • 6 views
function printHeap(heap, index, level) { if (index >= heap.length) { return; } console.log(" ".repeat(level) + heap[index]); printHeap(heap, 2 * index + 1, level + 1); printHeap(heap, 2 * index + 2, level + 1); } //You can call this function by passing in the heap array and the index of the root node, which is typically 0, and level = 0. let heap = [3, 8, 7, 15, 17, 30, 35, 2, 4, 5, 9]; printHeap(heap,0,0)
0 likes • 3 views
const euclideanDistance = (a, b) => Math.hypot(...Object.keys(a).map(k => b[k] - a[k])); euclideanDistance([1, 1], [2, 3]); // ~2.2361 euclideanDistance([1, 1, 1], [2, 3, 2]); // ~2.4495