Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
125
rated 0 times [  126] [ 1]  / answers: 1 / hits: 16574  / 6 Years ago, thu, november 29, 2018, 12:00:00

Suppose I have an array:



    members = [
{name: 'Anna', class: 'one'},
{name: 'Bob', class: 'two'},
{name: 'Chuck', class: 'two'}];

removed = members.myRemoveByClass('two'); //something like

// removed is {name: 'Bob', class: 'two'}
// members is [{name: 'Anna', class: 'one'}, {name: 'Chuck', class: 'two'}]


I'm looking for something for myRemoveByClass. ES2015 is fine or using Lodash. The array will have been ordered already. None of the questions I've seen quite match what I'm looking for.


More From » arrays

 Answers
5

You could create your own Array class:



 class Members extends Array {
removeByClass(className) {
for(const [index, member] of this.entries())
if(member.class === className)
return this.splice(index, 1)[0];
}
}


Use it as



 const members = new Members([ {/*...*/}, {/*...*/} ]);
members.removeByClass(...);


PS: class is a very bad name as it is a reserved keyword


[#53019] Saturday, November 24, 2018, 6 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
daquanmilesw

Total Points: 57
Total Questions: 102
Total Answers: 110

Location: Wallis and Futuna
Member since Sat, Aug 6, 2022
2 Years ago
daquanmilesw questions
;