Skip to content

Instantly share code, notes, and snippets.

View bbb0ttle's full-sized avatar
🍼

bbbottle bbb0ttle

🍼
View GitHub Profile
@bbb0ttle
bbb0ttle / leftTrimTstr.js
Last active January 22, 2018 06:48
去除模板字符串左边多余空格(保留缩进)
function leftTrimTstr(str) {
let strArr = str.split('\n'),
noStartSpace = strArr.filter(str => /^[^-\s].*/.test(str) && str !== '').length > 0;
if (strArr.length === 1 || noStartSpace) {
// 单行字符串,或存在顶格行的多行字符串不作处理
return str;
}
else {
let spaceArr = strArr.map(str => str.match(/^\s+/)).filter(v => v).map(arr => arr[0]);
let shortestSpaceLen = Math.min.apply(null, spaceArr.map(space => space.length));
function getAllCountriesCode() {
var table = document.getElementsByClassName("v-table-table")[0]
, trArr = table.firstChild.children
, codeArr = Array.from(trArr).map(tr=>tr.children[3].firstChild.innerText);
return codeArr;
}
function code2url(code) {
return `http://biogeo.ucdavis.edu/data/gadm2.8/shp/${code}_adm_shp.zip`
}
@bbb0ttle
bbb0ttle / convert.js
Last active January 22, 2018 07:00
numConvert
// parseInt(string, radix);
parseInt('000050',16)
// numObj.toString([radix])
parseInt(44112).toString(16)
@bbb0ttle
bbb0ttle / taskTimer.js
Created December 12, 2017 10:30
定时任务
/** 定时任务,每隔一定时间,从任务队列取任务,送给执行函数处理。
* @param {Array} taskQueue 任务队列
* @param {Function} execFn 任务处理函数
* @param {Number} subQueuLen 每次处理的任务数
* @param {Number} duration 每次处理任务的时间
*/
function taskTimer(taskQueue, execFn, subQueueLen, duration) {
let numOfSubQueue = Math.ceil(taskQueue.length / subQueueLen), i = 0, timmer, paused = false;
if(!isArgsValid()){return false}
function isArgsValid() {
@bbb0ttle
bbb0ttle / sessionSharing.js
Created December 12, 2017 10:29
共享 session
let app = require('express')(),
session = require('express-session'),
cookieParser = require('cookie-parser'),
http = require('http'),
io = require('socket.io'),
store = new session.MemoryStore();
// 添加 session 支持
app.use(session({
secret: 'test',
@bbb0ttle
bbb0ttle / genLogo.js
Last active August 28, 2019 02:57
生成 ZjHOU 的 Logo
// 生成 zjhou's logo
(function(opt) {
let OPTION = Object.assign({
canvasWd: 512,
canvasHt: 512,
logoXpos: '',
logoYpos: '',
logoSize: 4,
color: '#000',
$wrapper: document.querySelector('body')
@bbb0ttle
bbb0ttle / EventObserver.js
Last active December 12, 2017 10:26
观察者模式
class EventObserver {
constructor() {
this.observers = [];
}
subscribe(fn) {
this.observers.push(fn);
}
unsubscribe(fn) {
this.observers = this.observers.filter(subscribe => subscribe !== fn);
}
@bbb0ttle
bbb0ttle / parseTargetHtml.js
Created December 12, 2017 08:08
解析目标地址返回的 HTML
// 1. 拿页面
var Get = function(url) {
const promise = new Promise(function(resolve, reject){
const handler = function() {
if (this.readyState !== 4) {
return;
}
if (this.status === 200) {
resolve(this.response);
} else {