سلام. یه آبحکت به فرمت زیر دارم که id در اون یونیک هست :
multipleFilter: { department: [{ id: null, matchList: [], matchFilterType: null }], subDepartment:[{id,matchList,matchFilterType}] }
چجوری میتونم این آبجکت رو برای یک آی دی خاص فیلتر کنم؟ این کد خودم ولی درست فیلتر نمیکنه. با این کد میخوام اون آبجکتی که انتخاب شده حذف بشه ولی کل آبجکت رو خالی میکنه:
const multipleFilter: Object.keys(this.state.multipleFilter).filter(key=> this.state.multipleFilter[key].id !== row.id)
در ابتدا اینکه بنده ریاَکت کار نمیکنم،اما اینکه ابجکت رو خالی میکنه خب فکر میکنم مربوط هست به اینکه ابجکت رو مساوی با برعکسش تعریف کردید و برای مولتی فیلتر فکر میکنم این بدردتون بخوره که مربوط به دسته بندی هم هست :
https://stackoverflow.com/questions/45216581/apply-multiple-filters-react
Object.keys(MyObj).filter(key=> MyCodition)
ببنید خروجی این خط کدی که نوشتم قطعا یه آرایه خواهد بود. و خروجی شما یک آبجکت نخواهد بود.
به هر حال کد بالا به این صورت کار میکنه و فیلتر رو انجام میده:
import * as React from "react";
import "./App.css";
function App() {
const [id, matchList, matchFilterType] = [1, 'matchList', 'matchFilterType']
const multipleFilter = { department: { id: 0, matchList: [], matchFilterType: null }, subDepartment:{id,matchList,matchFilterType} }
const multipleFilterKeys= Object.keys(multipleFilter).filter(key=> multipleFilter[key].id == 1)
console.log(multipleFilterKeys)
return(
<>
app
</>
)
}
export default App;
و با این کد هم درست کار میکنه:
import * as React from "react";
import "./App.css";
function App() {
const [id, matchList, matchFilterType] = [1, 'matchList', 'matchFilterType']
const multipleFilter = { department: [{ id: 0, matchList: [], matchFilterType: null }], subDepartment:[{id,matchList,matchFilterType}] }
const multipleFilterKeys= Object.keys(multipleFilter).filter(key=> multipleFilter[key][0].id == 1)
console.log(multipleFilterKeys)
return(
<>
app
</>
)
}
export default App;
به کدی که اینا نوشتم توجه کنید و به کد خودتون بسط بدین
import * as React from "react";
import "./App.css";
function App() {
const department = [
{ id: null, matchList: [], matchFilterType: null },
{ id: 0, matchList: ['it'], matchFilterType: [0, 1] },
{ id: 1, matchList: ['library'], matchFilterType: [2, 3] }
]
const shouldDelete = {
id: 1,
matchList: ['library'],
matchFilterType: [2, 3],
}
const filteredDepatman = department.filter((item) => item.id !== shouldDelete.id)
console.log(filteredDepatman)
return(
<>
app
</>
)
}
export default App;
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟