常用JavaScript、PHP、JAVA、小方法,通用!!

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

//函数内部设置 当前设计页面1920 最大页面3840
//分辨率为1920时 1rem=10px
//分辨率为3840时 1rem=20px
/**
 * 根据分辨率设置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;
    }
    //要等 wiewport 设置好后才能执行 refreshRem,不然 refreshRem 会执行2次;
    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的常用转换


	/**
	* 将对象装换为map
	* @param bean
	* @return
	*/
    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;
    }

    /**
     * 将map装换为javabean对象
     *
     * @param map
     * @param bean
     * @return
     */
    public static <T> T mapToBean(Map<String, Object> map, T bean) {
        BeanMap beanMap = BeanMap.create(bean);
        beanMap.putAll(map);
        return bean;
    }

    /**
     * 将List<T>转换为List<Map<String, Object>>
     *
     * @param objList
     * @return
     * @throws JsonGenerationException
     * @throws JsonMappingException
     * @throws IOException
     */
    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;
    }

    /**
     * 将List<Map<String,Object>>转换为List<T>
     *
     * @param maps
     * @param clazz
     * @return
     * @throws InstantiationException
     * @throws IllegalAccessException
     */
    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)//{name:admin,old:15}
json_decode($json,true)//["name"=>"admin","old"=>15]
json_decode($json,true)//["admin",15]
//如果有中文
$arr = ["name"=>"你好","old"=>15];
$arr["name"] = urlencode($arr["name"]);//先将中文编码
$json = urldecode(json_encode($arr));//转为json后在解码

猜你喜欢

转载自blog.csdn.net/flaystar/article/details/101532765