易错类
1、为函数的参数设置了默认值,当入参为null时,结果页面报错了。 因为入参为null时,默认值并没有生效
const getStringLength = (curString = "") => {
return curString.length;
};
const first = getStringLength(null);
const second = getStringLength('xxx');
console.log(first,'first');
console.log(second,'second');
2、深拷贝:时间
处理工具
1、金额计算、加减乘除精度问题: NP www.npmjs.com/package/num…
数据处理
1、传入一个数组,和需要累加的key。返回累加结果
import NP from 'number-precision';// 不需要关注精度问题
const accumulator = (array: Record<string, any>[] = [], key: string) => {
const res = array.reduce((acc, cur) => {
const curVal = cur[key] || 0;
return NP.plus(acc, curVal);
}, 0);
return res;
};
2、数组a是id合集,必须全部包含在数组b内
const a = [2, 7, 10];
const b = [
{ id: 1, name: "蔡徐坤" },
{ id: 2, name: "王一博" },
{ id: 5, name: "王嘉尔" },
{ id: 6, name: "易洋千玺" },
{ id: 7, name: "陈飞宇" },
{ id: 8, name: "魏大勋" },
{ id: 10, name: "王鹤地" },
];
// 校验结果
const checkPass = a.every(curId=>b.some(i=>i?.id===curId));
console.log('checkPass',checkPass);
3、把符合条件的项排序在第一位
方法1:
const list = [
{ id: 1, name: "蔡徐坤" },
{ id: 2, name: "王一博" },
{ id: 5, name: "王嘉尔" },
{ id: 6, name: "易洋千玺" },
{ id: 7, name: "陈飞宇" },
{ id: 8, name: "魏大勋" },
{ id: 10, name: "王鹤地" },
];
list.sort((item) => {
if (item?.id === 7) {
return -1;
}
return 0;
});
方法2:过滤出来(filter、splice),然后放在第一个