راکت

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

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

ثبت پرسش جدید

پاسخ‌ها

5
علیرضا حسینی
علیرضا حسینی
@alirezahsi

تخصص: برنامه نویس

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

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

کامران داور
کامران داور
@kamran.davar

تخصص: Front-end developer

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;

شاید پاسخ شما همین‌جا باشد

کامران داور
کامران داور
@kamran.davar

تخصص: Front-end developer

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

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;
کامران داور
کامران داور
@kamran.davar

تخصص: Front-end developer

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

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

تخصص: برنامه نویس


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

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

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