一.对于数组进行修饰返回一个新的数组;
01.描述。
我们工作常常会发现后端传过来的数据有些不仅仅键值为空,甚至都没有键,也就是我们常说的属性名,那我们就需要去修改一下,返回一个结构正常的数据;
02.代码。
const data = [
{ id: 1, name: 'John' ,age:''},
{ id: 2 },
{ name: 'Jane' },
{ id: 3, age: 30 }
];
const filteredData = data.map(item => ({...item, id: item.id || '不存在',age:item.age||'不存在啊1'}));
03.总结。
使用map是一个很方便的数组方法,可以return一个新的数组,代码量大大减少,初学对于map不太了解的话,可以查看一下es6的语法,对于一下forEach两者的区别。
二.对于数组元素进行判断,元素是否为空字符。
01.描述。
比如说在默写情况,需要对于一些数据进行判断,全部的数据元素不能为空字符串,必须有内容才能往接口传参。
02.代码实现。
const data = [
{ id: 1, name: 'John' ,age:''},
{ id: 2 },
{ name: 'Jane' },
{ id: 3, age: 30 }
];
let tag = ''
const ss = ['id','name','age']
for(let i=0;i<data.length;i++){
for(let j=0;j<ss.length;j++){
if(data[i][ss[j]]===''){
tag = true
break
}
}
}
console.log(tag);
03.总结。
双重for循环是工作中非常常用的,必须重视。
路过的大咖,喜欢的话点个赞!万分感谢!
三.对于对象进行一次拷贝借助于Object.keys()方法;
01.描述。
当我们需要拷贝对象的时候需要知道这个对象是否为一个空对象,对其进行forIN遍历,往往会对其Object.keys()方法进行使用。
下边这个是父组件发送过来一组数据,对其进行监听且更改。
02.代码实现。
watch: {
checkouts: {
handler: function(newV, oldV) {
const o = { ...newV }
//把对象属性转为一个数组 (其实这一步也可以直接对o==={}进行判断也是可以的)
const key = Object.keys(o)
if (key.length > 0) {
for (const key in o) {
this.queryAdd[key] = o[key]
}
}
},
deep: true
}
},
03.总结。
我们往往可以通过对象跟数组相互结合用,能够处理好多的场景情况,好用的Object.keys()