近期遇到的数组对象处理

一个数组对象,根据另一个数组的ids来过滤数据。


arrF.filter(i => arrZ.includes(i.id))

判断一个数组是否是另一个数组的 子集


arrF.every(i => arrZ.includes(i))

数组对象选择出一个与之id相等的对象

使用 find 方法会更加优雅一些,使用 filter也是可以的,但需要多一步操作,因为filter返回的是 数组对象,需要再取下标[0]来获取对象

[{id: 1, name: 333}, { id:1, name: 999 }, {id: 3, name: 8880}].find(i => i.id == 3).name
[{id: 1, name: 333}, { id:1, name: 999 }, {id: 3, name: 8880}].fliter(i => i.id == 3)[0].name

有这样一个需求,tab切换的时候,需要保留此tab的表单值,也就是说,如果再切换回这个tab页,表单数据仍然存在。

但是呢,其实每个tab页面的表单id是一样的,为了区分,就在后面加了_{type},type是切换当前tab的值。但是在提交的时候,只提交当前tab的所有表单,也就是会出现如下的数据格式。

后端当然是不需要 _1 这样的形式,所以需要前端来处理一下,采用下面的方式:

其实就是处理对象的键,得到想要的key


var ols = {
    e_1: '22', 
    l_1: '55',
    c: '44'
}
// 解析对象,key是键,value是值
const olsd = Object.entries(ols).map(([key, value]) => {
    const aa = key.split('_') ? key.split('_')[0] : key
    const o = { [`${aa}`]: value }
    return o;
});
// 合并数组对象的值,到一个对象里。
console.log(Object.assign({}, ...olsd));

关注我获取更多前端资源和经验分享
在这里插入图片描述

感谢大佬们阅读,希望大家头发浓密,睡眠良好,情绪稳定,早日实现财富自由~

你可能感兴趣的:(JavaScript,数组,对象,Array,filter,find)