Loading...
More TypeScript Posts
import React, { useEffect, useRef, useState } from 'react';import * as d3 from 'd3';export default function useD3(renderChartFn : (svg : d3.Selection<SVGElement,{},HTMLElement>) => any, dependencies : any[]) {const ref = useRef<SVGSVGElement>();useEffect(() => {let d3El = d3.select(ref.current)renderChartFn(d3.select(ref.current));return () => {};}, dependencies);return ref;}function MyChart(props : {w: number,h: number,data: Array<any>}) {const [currentData,setCurrentData] = useState(props.data)let svgRef = useD3((svg) => {if (props.data === currentData) returnsetCurrentData(props.data)// add d3 codesvg.selectAll("*").remove();const margin = { top: 0, right: 80, bottom: 20, left: 10 };const width = props.w - margin.left - margin.right;const height = props.h - margin.top - margin.bottom;const canvas = svg.attr('width', width + margin.left + margin.right).attr('height', height + margin.top + margin.bottom).append('g').attr('transform', `translate(${margin.left},${margin.top})`);// dataconst data = props.data},[props])return (<svg ref={svgRef} />)}
function removeElement(nums: number[], val: number): number {let zeroStartIndex = 0;for(let i = 0; i < nums.length; i++) {if(nums[i] !== val) {nums[zeroStartIndex] = nums[i];zeroStartIndex++;}}return zeroStartIndex;};
interface Task {id: number;title: string;completed: boolean;}class TaskManager {private tasks: Task[] = [];constructor() {}addTask(title: string) {const taskId = this.tasks.length + 1;const task: Task = {id: taskId,title,completed: false,};this.tasks.push(task);}markTaskAsComplete(taskId: number) {const task = this.tasks.find((task) => task.id === taskId);if (task) {task.completed = true;}}markTaskAsIncomplete(taskId: number) {const task = this.tasks.find((task) => task.id === taskId);if (task) {task.completed = false;}}listTasks() {console.log('Tasks:');this.tasks.forEach((task) => {console.log(`${task.id}. [${task.completed ? 'X' : ' '}] ${task.title}`);});}}// Example usage:const taskManager = new TaskManager();taskManager.addTask('Buy groceries');taskManager.addTask('Pay bills');taskManager.addTask('Clean the house');taskManager.listTasks();// Output:// Tasks:// 1. [ ] Buy groceries// 2. [ ] Pay bills// 3. [ ] Clean the house
const langToConfig = {'javascript': {image: '',cmd: ['']},'php': {image: '',cmd: ['']},}
function binarySearch(nums: number[], target: number): number {let left = 0;let right = nums.length - 1;while (left <= right) {const mid = left + Math.floor((right - left) / 2);if (nums[mid] === target) {return mid;} else if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return left;}function searchInsert(nums: number[], target: number): number {return binarySearch(nums, target);};
function removeDuplicates(nums: number[]): number {nums.splice(0, nums.length, ...Array.from(new Set(nums)));return nums.length;};console.log(removeDuplicates([1, 2, 3, 4, 5, 6]))