Skip to content

Instantly share code, notes, and snippets.

View vace's full-sized avatar
🏠
Working from home

Vace vace

🏠
Working from home
View GitHub Profile
@vace
vace / Simplify-Path.js
Last active August 19, 2016 06:37
Given an absolute path for a file (Unix-style), simplify it.
/**
* @param {string} path
* @return {string}
*/
const PATH_START = 0
const PATH_END = 1
const PATH_READ = 2
const PATH_CURRENT = 3
const PATH_PARENT = 4
@vace
vace / insertion-sort.js
Last active June 24, 2016 05:26
算法-插入排序实现
function insertionSort(arr){
var len = arr.length,index = 0,val
for(var j = 1;j < len ; j++){
val = arr[j]
index = j - 1;
while(index >= 0 && val < arr[index]){
arr[index+1] = arr[index]
index = index - 1
}
arr[index+1] = val
@vace
vace / easings-functions.js
Created June 29, 2016 02:17
常用函数
var easings = (function() {
var eases = {};
var names = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];
var functions = {
Sine: function(t) { return 1 - Math.cos( t * Math.PI / 2 ); },
Circ: function(t) { return 1 - Math.sqrt( 1 - t * t ); },
Elastic: function(t, m) {
if( t === 0 || t === 1 ) return t;
var p = (1 - Math.min(m, 998) / 1000), st = t / 1, st1 = st - 1, s = p / ( 2 * Math.PI ) * Math.asin( 1 );
return -( Math.pow( 2, 10 * st1 ) * Math.sin( ( st1 - s ) * ( 2 * Math.PI ) / p ) );
@vace
vace / parse_url_params.js
Last active January 13, 2017 15:19
格式化一个url中的参数
function parseUrlParam(url){
var match,
urlParams = {},
pl = /\+/g, // Regex for replacing addition symbol with a space
search = /([^&=]+)=?([^&]*)/g,
decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }
var query = url || location.href
var qus = query.indexOf('?')
if(qus !== -1){
@vace
vace / flex.css
Created February 12, 2017 15:55
css3 flex layout
.row {
box-sizing: border-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-flex-direction: row;
-ms-flex-direction: row;
@vace
vace / renderString.js
Created April 12, 2017 06:08
解析辅助类字符串:Now Time ${time}
function renderParser(string,data){
const S_CODE = 0x24 // start CODE $
const S_LEFT = 0x7b // {
const S_RIGHT = 0x7d // }
const S_SPACE = 0x20
let length = string.length
let at = 0,code,expession = '',expessionResult = ''
let isEnterExpression = false
let result = ''
function charAt(at){
@vace
vace / uniqueElementPath.js
Created April 18, 2017 14:18
getUniquePath(document.querySelector('img')) => html>body>div>div>div>div:nth-child(2)>table>tbody>tr>th:nth-child(2)>div>img
function getUniquePath(element){
if(element.nodeType !== Node.ELEMENT_NODE){
throw new Error('element must be element node')
}
if(element.id){
return '#' + element.id
}
var path = ''
while(element){
var name = element.localName
@vace
vace / simple-time-format
Last active January 29, 2018 05:39
javascript function
const REPLACE_REGEX = /(Y|M|D|H|I|S|T)/ig
export function timeFormat(unixTime, format = 'Y-M-D H:i:s') {
var time = new Date(unixTime * 1000)
var conf = {
Y: time.getFullYear(),
M: pad(time.getMonth() + 1), //月份
D: pad(time.getDate()), //日
H: pad(time.getHours()), //小时
I: pad(time.getMinutes()), //分
S: pad(time.getSeconds()), //秒
@vace
vace / encode-csv.js
Created June 29, 2017 13:10
csv encode and export
/**
* csv data encode
* var data = [[1850, 20, 0, 1, 1017281], [1850, 20, 0, 2, 1003841]];
* encode(data)
* encode(data,{ header: ["year", "age", "status", "sex", "population"] })
* encode([{age:xx,name:'xxx'}], {header:true})
* options:{ delimiter:'分隔符',newline:换行符,skip:头部跳过数量,header:Object或者arrat }
*/
const CELL_DELIMITERS = [',', ';', '\t', '|', '^']
@vace
vace / wxapkg.php
Created July 18, 2017 03:23
微信小程序包解包
<?php
/* from : https://github.com/Clarence-pan/unpack-wxapkg */
function unpack_wxapkg($file, $targetDir)
{
if (!is_dir($targetDir)){
mkdir($targetDir);
}
echo "Reading file.\n";