• Feb 6, 2021 •LeifMessinger
0 likes • 3 views
class SequentialQueue{ //if you want it to go backwards, too bad next(){ return this.i++; } constructor(start = 0){ this.i = start; } } const que = new SequentialQueue(0); for(let i = 0; i < 10; i++){ console.log(que.next()); }
• Nov 19, 2022 •CodeCatch
0 likes • 1 view
const countSubstrings = (str, searchValue) => { let count = 0, i = 0; while (true) { const r = str.indexOf(searchValue, i); if (r !== -1) [count, i] = [count + 1, r + 1]; else return count; } }; countSubstrings('tiktok tok tok tik tok tik', 'tik'); // 3 countSubstrings('tutut tut tut', 'tut'); // 4
const binomialCoefficient = (n, k) => { if (Number.isNaN(n) || Number.isNaN(k)) return NaN; if (k < 0 || k > n) return 0; if (k === 0 || k === n) return 1; if (k === 1 || k === n - 1) return n; if (n - k < k) k = n - k; let res = n; for (let j = 2; j <= k; j++) res *= (n - j + 1) / j; return Math.round(res); }; binomialCoefficient(8, 2); // 28
• Jan 26, 2023 •AustinLeath
0 likes • 7 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)
• May 17, 2021 •LeifMessinger
//Upvotes comments according to a regex pattern. I tried it out on https://www.reddit.com/r/VALORANT/comments/ne74n4/please_admire_this_clip_precise_gunplay_btw/ //Known bugs: //If a comment was already upvoted, it gets downvoted //For some reason, it has around a 50-70% success rate. The case insensitive bit works, but I think some of the query selector stuff gets changed. Still, 50% is good let comments = document.getElementsByClassName("_3tw__eCCe7j-epNCKGXUKk"); //Comment class let commentsToUpvote = []; const regexToMatch = /wtf/gi; for(let comment of comments){ let text = comment.querySelector("._1qeIAgB0cPwnLhDF9XSiJM"); //Comment content class if(text == undefined){ continue; } text = text.textContent; if(regexToMatch.test(text)){ console.log(text); commentsToUpvote.push(comment); } } function upvote(comment){ console.log(comment.querySelector(".icon-upvote")); //Just showing you what it's doing comment.querySelector(".icon-upvote").click(); } function slowRecurse(){ let comment = commentsToUpvote.pop(); //It's gonna go bottom to top but whatever if(comment != undefined){ upvote(comment); setTimeout(slowRecurse,500); } } slowRecurse();
const nums = [1, 2, 3]; const strs = Array.from('est'); nums.push(6); nums.push(4, 9); strs.unshift('t'); nums.length; // 6 nums[nums.length - 1]; // 9 strs[0]; // 't' strs[2]; // 's' nums.slice(1, 3); // [2, 3] nums.map(n => n * 2); // [2, 4, 6, 12, 8, 18] nums.filter(n => n % 2 === 0); // [2, 6, 4] nums.reduce((a, n) => a + n, 0); // 25 strs.reverse(); // ['t', 's', 'e', 't'] strs.join(''); // 'test' const nums = new Set([1, 2, 3]); nums.add(4); nums.add(1); nums.add(5); nums.add(4); nums.size; // 5 nums.has(4); // true nums.delete(4); nums.has(4); // false [...nums]; // [1, 2, 3, 5] nums.clear(); nums.size; // 0 const items = new Map([ [1, { name: 'John' }], [2, { name: 'Mary' }] ]); items.set(4, { name: 'Alan' }); items.set(2, { name: 'Jeff' }); items.size; // 3 items.has(4); // true items.get(2); // { name: 'Jeff' } items.delete(2); items.size; // 2 [...items.keys()]; // [1, 4] [...items.values()]; // [{ name: 'John' }, { name: 'Alan' }] items.clear(); items.size; // 0