How to make select accept in the function query() in the result variable the result the filterIn() function and filter by its arguments 'name' , 'gender' , 'email' . I do not understand how to pass in select() these arguments 'name' , 'gender' , 'email' .
var friends = [ { name: 'Π‘ΡΠΌ', gender: 'ΠΡΠΆΡΠΊΠΎΠΉ', email: 'luisazamora@example.com', favoriteFruit: 'ΠΠ°ΡΡΠΎΡΠ΅Π»Ρ' }, { name: 'ΠΠΌΠΈΠ»ΠΈ', gender: 'ΠΠ΅Π½ΡΠΊΠΈΠΉ', email: 'example@example.com', favoriteFruit: 'Π―Π±Π»ΠΎΠΊΠΎ' }, { name: 'ΠΡΡ', gender: 'ΠΡΠΆΡΠΊΠΎΠΉ', email: 'danamcgee@example.com', favoriteFruit: 'Π―Π±Π»ΠΎΠΊΠΎ' }, { name: 'ΠΡΡΠ΄', gender: 'ΠΡΠΆΡΠΊΠΎΠΉ', email: 'newtonwilliams@example.com', favoriteFruit: 'ΠΠ°Π½Π°Π½' } ]; function query(collection) { var result = select(arguments[2]); return result; }; function select() { var selectArr = arguments[0]; for (var i = 0; i < friends.length; i++) { for (var key in friends[i]) { if (selectArr.indexOf.call(arguments, key) == -1) { delete selectArr[i][key]; } } } return selectArr }; function filterIn(property, values) { var arr = []; for (var q = 0; q < friends.length; q++) { for (var i = 0; i < values.length; i++) { if (friends[q].hasOwnProperty(property)) { if (friends[q][property] == values[i]) { arr.push(friends[q]) } } } } return arr }; var lib = query(friends, select('name', 'gender', 'email'), filterIn('favoriteFruit', ['Π―Π±Π»ΠΎΠΊΠΎ', 'ΠΠ°ΡΡΠΎΡΠ΅Π»Ρ'])); console.log(lib) The result should output such.
[ { name: 'Π‘ΡΠΌ', gender: 'ΠΡΠΆΡΠΊΠΎΠΉ', email: 'luisazamora@example.com' }, { name: 'ΠΠΌΠΈΠ»ΠΈ', gender: 'ΠΠ΅Π½ΡΠΊΠΈΠΉ', email: 'example@example.com' }, { name: 'ΠΡΡ', gender: 'ΠΡΠΆΡΠΊΠΎΠΉ', email: 'danamcgee@example.com' }, { name: 'Π¨Π΅ΡΡΠΈ', gender: 'ΠΠ΅Π½ΡΠΊΠΈΠΉ', email: 'danamcgee@example.com' }, { name: 'Π‘ΡΠ΅Π»Π»Π°', gender: 'ΠΠ΅Π½ΡΠΊΠΈΠΉ', email: 'waltersguzman@example.com' } ]
friends? - Igorargumentsif the arguments are explicitly specified? - Daniel Khoroshko