Skip to content

Instantly share code, notes, and snippets.

@vace
vace / insertion-sort.js
Last active Jun 24, 2016
算法-插入排序实现
View insertion-sort.js
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
View easings-functions.js
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 / Simplify-Path.js
Last active Aug 19, 2016
Given an absolute path for a file (Unix-style), simplify it.
View Simplify-Path.js
/**
* @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 / parse_url_params.js
Last active Jan 13, 2017
格式化一个url中的参数
View parse_url_params.js
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 Feb 12, 2017
css3 flex layout
View flex.css
.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 Apr 12, 2017
解析辅助类字符串:Now Time ${time}
View renderString.js
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 Apr 18, 2017
getUniquePath(document.querySelector('img')) => html>body>div>div>div>div:nth-child(2)>table>tbody>tr>th:nth-child(2)>div>img
View uniqueElementPath.js
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 / encode-csv.js
Created Jun 29, 2017
csv encode and export
View encode-csv.js
/**
* 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 Jul 18, 2017
微信小程序包解包
View wxapkg.php
<?php
/* from : https://github.com/Clarence-pan/unpack-wxapkg */
function unpack_wxapkg($file, $targetDir)
{
if (!is_dir($targetDir)){
mkdir($targetDir);
}
echo "Reading file.\n";
View debounce.js
function debounce(func, wait, immediate){
var timeout, args, context, timestamp, result;
if (null == wait) wait = 100;
function later() {
var last = Date.now() - timestamp;
if (last < wait && last >= 0) {
timeout = setTimeout(later, wait - last);
} else {