處理巢狀未知層級的物件陣列資料

2021-10-09 06:00:55 字數 1014 閱讀 9971

不知道你們有沒有在專案中遇到特別複雜的資料,最近的專案就遇到過,其實說實話並不是資料有多複雜,主要是太多,因為很多資料的處理無非就是過濾,去重等等這幾種方式資料

const q =[,

,,,,

],},

,,,,

,],}

,,,,

];

當讓原先的資料肯定不是這個的,這些資料只是我在網上隨便搜了個類似的,真實的資料比這複雜的很多,而且我拿到這個資料是要渲染成一棵樹形控制項的,類似下方這個

首先需要對資料過濾,因為樹形控制項有自己的字段對應的,所以我們需要對資料的字段轉換。

因為不知道有多少層級,所以遞迴處理是一定的

// 過濾字段

const

formatformdatawrap

= nodes =>

// 以下就是你真實要輸出的字段,可自行調整

return;}

);};

樹形控制項需要保證key值是唯一的,所以我們需要對資料進行去重處理

// 去重

const

handlerepeat

= nodes =>

;return nodes.

reduce

(function

(item, next)

obj[next.key]?""

:(obj[next.key]

=true

&& item.

push

(next));

return item;},

);};

其實對龐大複雜的資料處理只要自身對遞迴方法理解的稍微好點,都是比較簡單的。

Drools中多巢狀物件的處理

原來的文章就曾經提到過,在drools中,域約束好像只能適用於物件的簡單型別域,複雜物件型別的是不能用域限定方式來做的。如 code rule weekday balance salience 0 when customer customer card card scard card discoun...

js map 處理陣列和物件資料

之前的文章梳理了js陣列與物件屬性的遍歷方法,本文介紹專門用以遍歷並處理資料的map 方法。一 原生map map 是陣列的乙個方法,它建立乙個新陣列,其結果是該陣列中的每個元素都呼叫乙個提供的函式後返回的結果。map 裡面的處理函式接受三個引數,分別指代當前元素 當前元素的索引 陣列本身。ie9以...

近期遇到的陣列物件處理

乙個陣列物件,根據另乙個陣列的ids來過濾資料。arrf.filter i arrz.includes i.id 判斷乙個陣列是否是另乙個陣列的 子集 arrf.every i arrz.includes i 陣列物件選擇出乙個與之id相等的物件 使用 find 方法會更加優雅一些,使用 filte...