我需要過濾我在 D3 折線圖中使用的資料。我的資料(稱為'slices')是一個包含8個物件的陣列,每個物件有兩個鍵('id'和'values'),鍵'values'的值是另一個46個物件的陣列 資料結構
我的問題是,如何過濾“值”的第 n 個元素?
我能做的是:
slices.filter(function(d,i){return i%3 == 1})
但這是過濾頂層的每 3 個元素,我得到 3 個結果,因為只有 8 個元素,我不想要這個。我想過濾“值”中的每 3 個元素(所有 46 個物件陣列)
uj5u.com熱心網友回復:
如評論所述,您將不得不使用:
slices.map(
({id, values}) => ({
id,
values: values.filter((_, i) => i%3===1)
})
)
現在為什么這樣:
您的資料結構如下所示:
[{
id: "",
values: [...]
}]
當您說如何過濾“值”的第 n 個元素時?,它本質上意味著您需要所有值slices來更新values.
因此,您必須按照以下步驟操作:
- 回圈
slices并回傳處理后的值 - 在回圈中,創建需要回傳的新物件。
values根據您的邏輯過濾- 將此值設定
values為回傳值的屬性
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/511501.html
