- json字符串转json对象
var str = "{id:1,name:'测试1'}"
var obj = JSON.parse(str);
- json对象转json字符串
var obj = {id:1,name:'测试1'}
var jsonstr = JSON.stringify(obj);
- 数组转字符串
var arr = [1,2,3,4,5,6]
var str = arr .join(",")
- 字符串转数组
var str="1,2,3,4";
var arr=str.split(",");
- 对象合并并覆盖前面的
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:"男"}
- 删除数组
array.pop(); //删除最后一个元素,并返回该元素
array.shift(); //删除第一个元素,数组元素位置自动前移,返回被删除的元素
array.splice(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]
- 判断是否为空对象
var data = {};
var b = (JSON.stringify(data) == "{}");
alert(b);//true
- 数组去重
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]
- 删除重复的字符
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
- 排序两个已经排好序的数组
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]
- 字符串反向
function reverse(str){
let resStr = "";
for(let i = str.length-1; i >= 0; i--){
resStr += str[i];
}
return resStr;
}
console.log(reverse("ABCDEFG")); // GFEDCBA
- 连字符转成驼峰
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
- 用正则实现trim() 清除字符串两端空格
String.prototype.trim1 = function(){
// return this.replace(/\s*/g,""); // 清除所有空格
return this.replace(/(^\s*)|(\s*$)/g,""); // 清除字符串前后的空格
};
console.log(" hello word ".trim1()) // "hello word"
- push()可接受任意数组的参数,把他们逐个添加到末尾,并返回修改后的数组长度
var a = [1,2,3,4]
a.push(5);
console.log(a) // [1,2,3,4,5]
- pop()移除数组最后一项,减少数组长度,返回移除的项
var a = [1,2,3,4]
a.pop();
console.log(a) // [1,2,3]
- 清除数组中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"}]*/
- 判断数组中是否存在某个字符串,判断字符串中是否包含某个字符串
// 判断数组中是否存在某个字符串
var i = 5
var arr = [0,1,2,3,4,5,6]
arr.indexOf(i)!=-1?"匹配到i":"没匹配到i" // 如果未匹配到则返回-1
// 判断字符串中是否包含某个字符串
"abcde".includes("cd") // true
- 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;
});
- 字符串截取
let newObj = '15200000000'
newObj = newObj.substr(0,3)
console.log(newObj) // 152
- 引入字体
@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")
})