js 常用方法 数组,对象,字符串转换,去重

  1. json字符串转json对象
var str = "{id:1,name:'测试1'}"
var obj = JSON.parse(str);
  1. json对象转json字符串
var obj = {id:1,name:'测试1'}
var jsonstr = JSON.stringify(obj); 
  1. 数组转字符串
var arr = [1,2,3,4,5,6]
var str = arr .join(",")
  1. 字符串转数组
var str="1,2,3,4";
var arr=str.split(","); 
  1. 对象合并并覆盖前面的
var obj1 = {name:"ye1",age:18}
var obj2 = {name:"ye2",sex:"男"}
var obj = Object.assign(obj1 , obj2 );
console.log(obj);					//  输出{name:"ye2",age:18,sex:"男"}
  1. 删除数组
array.pop();		//删除最后一个元素,并返回该元素
array.shift();		//删除第一个元素,数组元素位置自动前移,返回被删除的元素
array.splice(1,1);	//从第几条开始,删除几条数据
  1. 数组的合并、截取
array.slice(start,end);				//截取
array.concat(array1,array2);		//将多个数组拼接成一个数组
var a = [1,2,3,4,5]
var b = [2,4,6,8,10]
var e = a.concat(b);
console.log(e)						// [1,2,3,4,5,2,4,6,8,10]
  1. 判断是否为空对象
var data = {};
var b = (JSON.stringify(data) == "{}");
alert(b);//true
  1. 数组去重
function removeDuplicate(arr){
	if (arr === null || arr.length < 2) {
		return arr;
	};
	let res = [],exits = [];
	for(let i = 0; i < arr.length; i++){
		let j = arr[i];
		while( !exits[j] ){
			res.push(arr[i]);
			exits[j] = true;
		}
	}
	return res;
}
console.log(removeDuplicate([1,3,3,3,1,5,6,7,8,1]))  // [1,3,5,6,7,8]
  1. 删除重复的字符
function removeDuplicateChar(str){
	if (!str || str.length < 2 || typeof str != "string") {
		return;
	};
	let charArr = [],res = [];
	for(let i = 0; i < str.length; i++){
		let c = str[i];
		if(charArr[c]){
			charArr[c]++;
		}
		else{
			charArr[c] = 1;
		}
	}
	for(let j in charArr){
		if (charArr[j] === 1) {
			res.push(j);
		}
	}
	return res.join("");
}
console.log(removeDuplicateChar("Learn more javascript dude"));  // Lnmojvsciptu
  1. 排序两个已经排好序的数组
function mergeSortedArr(a,b){
	if (!a || !b) {
		return;
	};
	let aEle = a[0],bEle = b[0],i = 1,j = 1,res = [];
	while(aEle || bEle){
		if ((aEle && !bEle) || aEle <= bEle) {
			res.push(aEle);
			aEle = a[i++];
		}
		else{
			res.push(bEle);
			bEle = b[j++];
		}
	}
	return res;
}
console.log(mergeSortedArr([2,5,6,9], [1,2,3,29]))  // [1,2,2,3,5,6,9,29]
  1. 字符串反向
function reverse(str){
	let resStr = "";
	for(let i = str.length-1; i >= 0; i--){
		resStr += str[i];
	}
	return resStr;
}
console.log(reverse("ABCDEFG"));  // GFEDCBA
  1. 连字符转成驼峰
let str = 'get-element-by-id';
let arr = str.split('-');
for(let i=1; i<arr.length; i++){
  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
}
console.log(arr.join(''));   // getElementById
  1. 用正则实现trim() 清除字符串两端空格
String.prototype.trim1 = function(){
	// return this.replace(/\s*/g,"");  // 清除所有空格
	return this.replace(/(^\s*)|(\s*$)/g,"");  // 清除字符串前后的空格
};
console.log("  hello word ".trim1())  // "hello word"
  1. push()可接受任意数组的参数,把他们逐个添加到末尾,并返回修改后的数组长度
var a = [1,2,3,4]
a.push(5);
console.log(a)  // [1,2,3,4,5]
  1. pop()移除数组最后一项,减少数组长度,返回移除的项
var a = [1,2,3,4]
a.pop();
console.log(a)  // [1,2,3]
  1. 清除数组中name一致的对象
var list = [					
		{id:1,name:'ye1'},
		{id:2,name:'ye2'},
		{id:3,name:'ye3'},
		{id:4,name:'ye2'},
		{id:5,name:'ye2'},
		{id:6,name:'ye4'},
];
var objabc = {}
/* 清除数组中id一样的对象 */
list.forEach(function(item){
	objabc[item.name] = item
})
console.log(objabc) 		/* {ye1: {id: 1, name: "ye1"},ye2: {id: 5, name: "ye2"},ye3: {id: 3, name: "ye3"},ye4: {id: 6, name: "ye4"}}*/
list = Object.values(objabc)
console.log(list)			/*[{id: 1, name: "ye1"},{id: 5, name: "ye2"},{id: 3, name: "ye3"},{id: 6, name: "ye4"}]*/
  1. 判断数组中是否存在某个字符串,判断字符串中是否包含某个字符串
// 判断数组中是否存在某个字符串
var i = 5
var arr = [0,1,2,3,4,5,6]
arr.indexOf(i)!=-1?"匹配到i":"没匹配到i"			// 如果未匹配到则返回-1

// 判断字符串中是否包含某个字符串
"abcde".includes("cd") // true
  1. js数组排序
let Arr = [{id:4},{id:1},{id:3}]
// 降序
Arr.sort(function(a,b) {
	return b.id- a.id;
});
// 升序
Arr.sort(function(a,b) {
	return a.id- b.id;
});
  1. 字符串截取
let newObj = '15200000000'
newObj = newObj.substr(0,3)
console.log(newObj)    // 152
  1. 引入字体
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('~assets/fonts/DMSans-Regular.ttf') format('truetype');
}

手机号中间替换*

phoneFun: function (phone) {
	if (phone) {
		return phone.replace(/(.{3}).*(.{4})/, "$1****$2")
	} else {
		return '';
	}
}

保留几位小数,如果小数点后面为0则去除

/**
 * 保留几位小数,如果小数点后面为0则去除
 * num 	 传递的数字 
 * power 传递的次方
 * powerFun(10.63481000,6) 10.634981
 **/
powerFun function(num, power) {
	let powerNew = (Number('1e' + power))
	let f = parseInt(num * powerNew) / powerNew;
	let s = f.toString();
	return s;
}

obj 转 params字符串参数

/**
 * obj 转 params字符串参数  
 * 例子:{a:1,b:2} => a=1&b=2
 */
objParseParam function(obj) {
	let paramsStr = "";
	if (obj instanceof Array) return paramsStr;
	if (!(obj instanceof Object)) return paramsStr;
	for (let key in obj) {
		paramsStr += `${key}=${obj[key]}&`;
	}
	return paramsStr.substring(0, paramsStr.length - 1);
}

邮箱中间替换*

/**
* 邮箱中间替换*
 **/
hideEmailInfo:function(email){
    if (String (email).indexOf ('@') > 0) {
        let newEmail, str = email.split('@'), _s = '';

        if (str[0].length > 4) {
            _s = str[0].substr (0, 4);
            for (let i = 0; i < str[0].length - 4; i++) {
                _s += '*';
            }
        } else {
            _s = str[0].substr (0, 1);
            for (let i = 0; i < str[0].length - 1; i++) {
                _s += '*';
            }
        }
        newEmail = _s + '@' + str[1];
        return newEmail;
    } else {
        return email;
    }
}

判断数据是否为空

/**
 * 判断数据是否为空
 * @param data
 * @returns {boolean}
 */
isEmpty:function (data) {
  if (data && typeof data !== "undefined" && data !== null && data !== '' && ((Array.isArray(data) && data.length > 0) || !Array.isArray(data)) && ((typeof data === "object" && JSON.stringify(data) !== "{}") || typeof data !== "object")) {
    return false
  } else {
    return true
  }
}

格式化数字(每三位加逗号)

// 格式化数字(每三位加逗号)
toThousands:function(num){
  if(!num || num == 0){
    return num;
  }
  var num = (num || 0).toString(), result = '';
  var reg = num.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
  num =  num.replace(reg,"$1,");
  return num;
}

个人笔记

$("body input, body textarea").attr('disabled',true);  // 禁止点击body下面的input和textarea

页面加载完后面追加DOM不能点击事件

$(document).on("click",".aaa",function() {
   console.log("sssss")
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值