Parastoo Ebrahimi
4 سال پیش توسط 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


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

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

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


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

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

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

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

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