近期遇到的數組對象處理

一個數組對象,根據另一個數組的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));

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章