Skip to content

Instantly share code, notes, and snippets.

View black-black-cat's full-sized avatar

bcatb black-black-cat

View GitHub Profile
@black-black-cat
black-black-cat / fib.js
Last active December 3, 2017 17:34
求斐波那契数列的第n项的值,n的取值从1开始
// 使用递归计算
function fib(n) { return n < 2 ? n : fib(n-1) + fib(n-2) }
// 使用循环计算
function fib_1(n) {
var arr = [1, 1]
var curLen
while(arr.length < n) {
curLen = arr.length
arr[curLen] = arr[curLen - 1] + arr[curLen - 2]
@black-black-cat
black-black-cat / index.html
Last active June 7, 2019 18:43
快速排序、选择排序、冒泡排序, merge sort
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>GistRun</title>
<!--<link rel="stylesheet" href="styles.css">-->
</head>
<body>
<h1>Hello world!</h1>
@black-black-cat
black-black-cat / ordinal.js
Created December 15, 2017 09:55
处理英文序号 th, st, nd, rd
function getOrdinal(n) {
var s=["th","st","nd","rd"],
v=n%100;
return n+(s[(v-20)%10]||s[v]||s[0]);
}
function ordinal_suffix_of(i) {
var j = i % 10,
k = i % 100;
if (j == 1 && k != 11) {
@black-black-cat
black-black-cat / flatten.js
Created December 19, 2017 07:40
flatten array
function flatten(arr, result) {
result = result || []
arr.forEach(function(item) {
if (Array.isArray(item)) {
flatten(item, result)
} else {
result.push(item)
}
})
@black-black-cat
black-black-cat / clone.js
Last active December 19, 2017 15:43
clone vs deep clone
function clone(value) {
var result
if (Array.isArray(value)) {
result = []
value.forEach(function (item) {
result[result.length] = item
})
} else if (typeof value === 'object') {
result = {}
Object.keys(value).forEach(function (key) {
@black-black-cat
black-black-cat / index.js
Last active December 22, 2017 16:30
跨浏览器标签通信
;(function (root, factory) {
root.CrossTab = factory()
}(window, function factory() {
var store = {
get: function (key) {
var strValue = localStorage.getItem(key)
var value
try {
value = JSON.parse(strValue)
} catch (err) {
@black-black-cat
black-black-cat / toColStr.js
Created December 27, 2017 03:30
将数字转换成Excel列数
function toColStr(n) {
str = ''
while (n > 0) {
var mod = (n-1) % 26
n = Math.floor( (n-1)/26 )
str = String.fromCharCode( mod + 65 ) + str
}
return str
}
@black-black-cat
black-black-cat / planet_unicode.js
Last active December 28, 2017 02:40
太阳系九大行星的unicode,紧接下来就是星座符号
var str = ''
var FP_CODE = 0x263f
var FS_CODE = 0X2648
for (var i = 0; i < 9; i++) { str += String.fromCharCode( FP_CODE + i ) } // --> "☿♀♁♂♃♄♅♆♇"
for (i = 0; i < 12; i++) { str += String.fromCharCode( FS_CODE + i ) } // --> "☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓"
let psdSize = 750; //设计稿宽度
let RemRatio = 16; //REM 换算比值
let baseFontSize = psdSize / RemRatio; // 基准字体大小,单位px
var templateFunction = function (data) {
var common = '.icon {display: inline-block;}';
var perSprite = data.sprites.map(function (sprite) {
return '.imgN {background-image: url(I); width: Wpx; height: Hpx; background-position: Xpx Ypx; }'
.replace(/px/g, 'rem')
.replace('I', sprite.image)
border-width: 0 0 1px
border-bottom-style: solid
border-bottom-color: #c8c7cc
/* :root.retina */
border-image-source: url("data:image/svg+xml;charset=utf-8,<svg height='1' width='1' xmlns='http://www.w3.org/2000/svg'><rect height='.5' width='1' y='.5' fill='%23c8c7cc'/></svg>")
border-image-slice: 0 0 1