前端工作常见数组数据处理的一些场景总结

一.对于数组进行修饰返回一个新的数组;

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()

猜你喜欢

转载自blog.csdn.net/2201_75705263/article/details/132049087