راکت
Parastoo Ebrahimi
Parastoo Ebrahimi
6 سال پیش توسط Parastoo Ebrahimi مطرح شد
5 پاسخ

فیلتر کردن آبجکت در ری اکت

سلام. یه آبحکت به فرمت زیر دارم که 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)

@mohsenbostan
@sinashahoveisi
@kamran.davar


ثبت پرسش جدید
علیرضا حسینی
علیرضا حسینی
تخصص :برنامه نویس
@alirezahsi6 سال پیشمطرح شد
0

در ابتدا اینکه بنده ری‌اَکت کار نمیکنم،اما اینکه ابجکت رو خالی میکنه خب فکر میکنم مربوط هست به اینکه ابجکت رو مساوی با برعکسش تعریف کردید و برای مولتی فیلتر فکر می‌کنم این بدردتون بخوره که مربوط به دسته بندی هم هست :

https://stackoverflow.com/questions/45216581/apply-multiple-filters-react


کامران داور
کامران داور
تخصص :Front-end developer
@kamran.davar6 سال پیشمطرح شد
0
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;

کامران داور
کامران داور
تخصص :Front-end developer
@kamran.davar6 سال پیشمطرح شد
0

و با این کد هم درست کار میکنه:

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;

کامران داور
کامران داور
تخصص :Front-end developer
@kamran.davar6 سال پیشمطرح شد
0

به کدی که اینا نوشتم توجه کنید و به کد خودتون بسط بدین

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;

اشکان نظری
اشکان نظری
تخصص :برنامه نویس
@ashkannazari2486 سال پیشمطرح شد
0

Object.values(myObject).filter(e=>e._name==='test');

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام