获取字符串长度(英文1个,中文2个)
//把双字节的字符替换成两个单字节的字符,并获取它的字符数
let str = '你好115s'
const len = str.replace(/[^\x00-\xff]/g, "00").length;
console.log(len)
js月份补零
const str = '8';
console.log(str.padStart(2, '0')); // "08"
const str1 = '10';
console.log(str1.padStart(2, '0')); // "10"
js去掉05前面的0
const str = '01';//只对字符串有效
console.log(~~num);
数组累加
let result = oldArray.reduce((a,b)=>{
return a + b;
})
js从一个数组(数组对象)中删除另一个数组(数组对象)中存在的元素
let arr1 = [{ id: 11 }, { id: 22 }, { id: 33 }, { id: 44 }];
let arr2 = [{ id: 11 }, { id: 22 },];
const arr = arr1.filter(x => !arr2.some(y => y.id === x.id ))
//或
const arr = arr1.filter(x => arr2.every(y => y.id !== x.id ))
//推荐some,因为some只有找到一个满足条件的元素, 则终止循环。
//如果是删除不存在的话,some那个不取反就行了
js从一个数组(数组对象)中找出另一个数组(数组对象)中不同的元素
let arr1 = [{ id: 11 }, { id: 33 }, { id: 44 }];
let arr2 = [{ id: 11 }, { id: 111 }, { id: 22 },];
//arr1 比 arr2 多的部分。 { id: 33 },
const arr__1 = arr1.filter(x => !arr2.some(y => y.id === x.id ))
//arr2 比 arr1 多的部分。{ id: 111 },
const arr__2 = arr2.filter(x => !arr1.some(y => y.id === x.id ))
//不同。 res = [...arr__1,...arr__2]
数组合并
//两个数组合并
let arr = [1, 2]
let arr2 = [3, 4]
console.log(arr.concat(arr2));
// [1, 2, 3, 4]
//多个数组合并
let a = ['1', '2'];
let b = ['3', '4'];
let c = ['5', '6'];
console.log([...a, ...b,...c]);
//['1', '2', '3', '4', '5', '6']
一元加号 (+),把内容转换成数字,即使字符串无法被解析为有效的数字,也会尝试解析为数字
//??和||类似,但是
//使用 ?? 时,只有a为 null 或者 undefined 时才会返回 0;
//使用 || 时,a会先转化为布尔值判断,为true时返回a , false 返回0
let a = +(a ?? 0);
console.log(+'3');