আপনি জেনেরিক যুক্ত করতে পারেন ofilter
(জেনেরিকের সাথে প্রয়োগ করা হয়েছে oreduce
) যাতে আপনি সহজে অ্যারেগুলিকে ফিল্টার করতে পারেন -
const oreduce = (f, acc, o) =>
Object
.entries (o)
.reduce
( (acc, [ k, v ]) => f (acc, v, k, o)
, acc
)
const ofilter = (f, o) =>
oreduce
( (acc, v, k, o)=>
f (v, k, o)
? Object.assign (acc, {[k]: v})
: acc
, {}
, o
)
আমরা এটি এখানে কাজ করতে দেখতে পারি -
const data =
{ item1: { key: 'a', value: 1 }
, item2: { key: 'b', value: 2 }
, item3: { key: 'c', value: 3 }
}
console.log
( ofilter
( (v, k) => k !== 'item2'
, data
)
// [ { item1: { key: 'a', value: 1 } }
// , { item3: { key: 'c', value: 3 } }
// ]
, ofilter
( x => x.value === 3
, data
)
// [ { item3: { key: 'c', value: 3 } } ]
)
নীচে আপনার নিজের ব্রাউজারে ফলাফল যাচাই করুন -
const oreduce = (f, acc, o) =>
Object
.entries (o)
.reduce
( (acc, [ k, v ]) => f (acc, v, k, o)
, acc
)
const ofilter = (f, o) =>
oreduce
( (acc, v, k, o)=>
f (v, k, o)
? Object.assign (acc, { [k]: v })
: acc
, {}
, o
)
const data =
{ item1: { key: 'a', value: 1 }
, item2: { key: 'b', value: 2 }
, item3: { key: 'c', value: 3 }
}
console.log
( ofilter
( (v, k) => k !== 'item2'
, data
)
// [ { item1: { key: 'a', value: 1 } }
// , { item3: { key: 'c', value: 3 } }
// ]
, ofilter
( x => x.value === 3
, data
)
// [ { item3: { key: 'c', value: 3 } } ]
)
এই দুটি ফাংশন বিভিন্নভাবে প্রয়োগ করা যেতে পারে। আমি Array.prototype.reduce
অভ্যন্তরে সংযুক্তি বেছে নিয়েছি oreduce
তবে আপনি স্ক্র্যাচ থেকে সহজেই এগুলি লিখতে পারেন