前端工作常见数组数据处理的一些场景总结
使用map是一个很方便的数组方法,可以return一个新的数组,代码量大大减少,初学对于map不太了解的话,可以查看一下es6的语法,对于一下forEach两者的区别。双重for循环是工作中非常常用的,必须重视。
·
一.对于数组进行修饰返回一个新的数组;
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()
四、一个数组变化影响另外一个数组(删除多个用for最好,forEach有些问题)
描述
列表已经存在就不用添加的时候显示了
代码
tableData(val) {
// 首先获取相应属性的数组
const bankSourceList = val.map(v => v.bankSource)
// 生命一个空数组
const indexArr = []
// 遍历一下看看存在哪些把下边拿出来
this.bankOptions.forEach((v, i) => {
if (bankSourceList.includes(v.value)) {
indexArr.push(i)
}
})
// 排一下序号
indexArr.sort(function(a, b) {
return a - b
})
// 循环给多个符合条件的去掉
for (let i = indexArr.length - 1; i >= 0; i--) {
this.bankOptions.splice(indexArr[i], 1)
}
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)