怎么判断一个对象是否为空
封装一个函数,使用 for i 这个循环,如果进这个循环,说明这个对象不是空,如果没进入这个对象则说明是空对象
function flag(obj) {
for (let i in obj) {
return true;
// 进入循环直接返回true
}
return false;
// 没有进入循环返回 false
}
或者使用ES6新增的方法,Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组。我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。
function checkNullObj (obj) { return Object.keys(obj).length === 0 };
// 如果他的length等于0 则返回true
// 如果他的length不等于0 则返回false
vue项目打包后页面空白
路由有2种模式,默认使用的是hash模式,如果使用的history模式,打包时需要进行额外的配置。
查看详情
深度合并2个对象
function deepMerge(obj1, obj2){
// 参数1:原数据
// 参数2:要合并的数据
for (var key in obj2) {
// 遍历要合并的数据
if (obj2.hasOwnProperty(key)) {
// 判断拷贝自身的属性,而不拷贝原型上的
if (obj1[key] && obj1[key].toString() === "[object Object]") {
// 如果要合并数据的key存在于元数据中,那么判断其类型是否是对象
obj1[key] = this.ss(obj1[key], obj2[key]);
// 如果是对象,调用自身,在吧原数据的key当作参数1,要合并数据的key当作参数2
} else {
obj1[key] = obj2[key];
// 如果要合并数据的key在原数据中不存在,就直接拷贝
}
}
}
return obj1;
// 返回原数据
}
因为是合并而不是拷贝,这里没有使用深拷贝
axios携带2份token
请求数据和上传图片封装2个函数。可能会出现携带2份token
只要在这2个函数中各自创建自己的axios实例就好了,这样就不互相关联了
前端模糊搜索
includes(string)
const str = 'hello world';
console.log(str.includes('hello')); // true
console.log(str.includes('word')); // false
抛出一个错误
throw new Error("错误");
// 手动抛出一个错误
// 可以使用try{}catch(err){} 来进行捕获
element表头排列顺序混乱
可以采用为每个Table-column添加一个唯一属性key的方式来保证表格渲染的顺序,例子如上
此方面针对于这种判断条件多的表格渲染
<el-table :data="list">
<el-table-column key="1"></el-table-column>
<el-table-column key="2"></el-table-column>
</el-table>
如有不解之处,请留言评论
如有更好的方法,请提出。