JavaScript
排序
快速排序
let arr = [ 11 , 5 , 33 , 2 , 6 , 8 , 11 , 12 , 17 , 6 ] ;
const s = ( a, l = [ ] , r = [ ] ) => {
if ( a. length < 2 ) return a;
let p = a. splice ( parseInt ( a. length / 2 ) , 1 ) [ 0 ] ;
a. forEach ( it=> it > p ? r. push ( it) : l. push ( it) ) ;
return s ( l) . concat ( [ p] , s ( r) ) ;
}
document. write ( arr+ "<br/>" + s ( arr) ) ;
字符串批量转换为URL编码(中英文一起转)
function strToTwo ( str) {
if ( str === "" ) return "" ;
var hexCharCode = [ ] ;
hexCharCode. push ( "%" ) ;
for ( var i = 0 ; i < str. length; i++ ) {
hexCharCode. push ( ( str. charCodeAt ( i) ) . toString ( 16 ) ) ;
}
var txt = hexCharCode. join ( "" ) ;
if ( txt. length> 4 ) {
return encodeURI ( str)
} else {
return txt;
}
}
function strB ( str) {
var s = "" ;
for ( let i= 0 ; i< ( str. length- 1 ) ; i++ ) {
s += strToTwo ( str. substr ( i, 1 ) ) ;
}
return s;
}
正则匹配文本中的url测试可用
((((http?|https)://)|http)[-A-Za-z0-9+&@#/%?=~_|!:,.;()]+[-A-Za-z0-9+&@#/%=~_|])
配置css根据屏幕自动适应的单位rem
( function ( designWidth, maxWidth) {
var doc = document,
win = window,
docEl = doc. documentElement,
remStyle = document. createElement ( "style" ) ,
tid;
console. log ( doc. documentElement, docEl. getBoundingClientRect ( ) . width)
function refreshRem ( ) {
var width = docEl. getBoundingClientRect ( ) . width;
maxWidth = maxWidth || 540 ;
width > maxWidth && ( width = maxWidth) ;
var rem = width * 10 / designWidth;
console. log ( width, rem)
remStyle. innerHTML = 'html{font-size:' + rem + 'px;}' ;
}
if ( docEl. firstElementChild) {
docEl. firstElementChild. appendChild ( remStyle) ;
} else {
var wrap = doc. createElement ( "div" ) ;
wrap. appendChild ( remStyle) ;
doc. write ( wrap. innerHTML) ;
wrap = null ;
}
refreshRem ( ) ;
win. addEventListener ( "resize" , function ( ) {
clearTimeout ( tid) ;
tid = setTimeout ( refreshRem, 300 ) ;
} , false ) ;
win. addEventListener ( "pageshow" , function ( e) {
if ( e. persisted) {
clearTimeout ( tid) ;
tid = setTimeout ( refreshRem, 300 ) ;
}
} , false ) ;
if ( doc. readyState === "complete" ) {
doc. body. style. fontSize = "10px" ;
} else {
doc. addEventListener ( "DOMContentLoaded" , function ( e) {
doc. body. style. fontSize = "10px" ;
} , false ) ;
}
} ) ( 1920 , 3840 ) ;
Java
List和Map的常用转换
public static < T> Map< String, Object> beanToMap ( T bean) {
Map< String, Object> map = Maps. newHashMap ( ) ;
if ( bean != null) {
BeanMap beanMap = BeanMap. create ( bean) ;
for ( Object key : beanMap. keySet ( ) ) {
map. put ( key + "" , beanMap. get ( key) ) ;
}
}
return map;
}
public static < T> T mapToBean ( Map< String, Object> map, T bean) {
BeanMap beanMap = BeanMap. create ( bean) ;
beanMap. putAll ( map) ;
return bean;
}
public static < T> List< Map< String, Object> > objectsToMaps ( List< T> objList) {
List< Map< String, Object> > list = Lists. newArrayList ( ) ;
if ( objList != null && objList. size ( ) > 0 ) {
Map< String, Object> map = null;
T bean = null;
for ( int i = 0 , size = objList. size ( ) ; i < size; i++ ) {
bean = objList. get ( i) ;
map = beanToMap ( bean) ;
list. add ( map) ;
}
}
return list;
}
public static < T> List< T> mapsToObjects ( List< Map< String, Object> > maps, Class< T> clazz)
throws InstantiationException, IllegalAccessException {
List< T> list = Lists. newArrayList ( ) ;
if ( maps != null && maps. size ( ) > 0 ) {
Map< String, Object> map = null;
T bean = null;
for ( int i = 0 , size = maps. size ( ) ; i < size; i++ ) {
map = maps. get ( i) ;
bean = clazz. newInstance ( ) ;
mapToBean ( map, bean) ;
list. add ( bean) ;
}
}
return list;
}
PHP
数组
数组与关联数组的转化
$arr = [ "name" = > "admin" , "old" = > 15 ]
$json = json_encode ( $arr )
json_decode ( $json , true )
json_decode ( $json , true )
$arr = [ "name" = > "你好" , "old" = > 15 ] ;
$arr [ "name" ] = urlencode ( $arr [ "name" ] ) ;
$json = urldecode ( json_encode ( $arr ) ) ;