Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function customFilter(array, callback) {
- var result = [];
- for (var i = 0; i < array.length; i++) {
- if (callback(array[i])) {
- result.push(array[i]);
- }
- }
- return result;
- }
- function check_filter(origin_array, examine_filter, arrow_function) {
- // Get filtered arrays
- var filtered_origin_array = origin_array.filter(arrow_function);
- var filtered_examine_array = customFilter(origin_array, arrow_function);
- // Check for correct filtering. Return "true" in case of correct filter, "false" - otherwise
- if (Math.min.apply(Math, filtered_examine_array) == Math.min.apply(Math, filtered_origin_array) &&
- Math.max.apply(Math, filtered_examine_array) == Math.max.apply(Math, filtered_origin_array) &&
- filtered_examine_array.length == filtered_origin_array.length) {
- return true
- } else {
- return false
- }
- }
- function main_check(examine_filter) {
- // Test cases
- // Case 1
- var arr_1 = [-5, -2, 0, 1, 2, 5, 9];
- arrow_fn_1 = item => item > 1;
- result_1 = check_filter(arr_1, examine_filter, arrow_fn_1);
- // Case 2
- var arr_2 = [0, 3, 4, 7, 12];
- arrow_fn_2 = item => item < 5;
- result_2 = check_filter(arr_2, examine_filter, arrow_fn_2);
- // Case 3
- var arr_3 = [0.1, 12.3, 44.12, -70.23, 0.12];
- arrow_fn_3 = item => item < 5;
- result_3 = check_filter(arr_3, examine_filter, arrow_fn_3);
- // Case 4
- var arr_4 = [];
- arrow_fn_4 = item => item > 7;
- result_4 = check_filter(arr_4, examine_filter, arrow_fn_4);
- // Case 5
- var arr_5 = [0, 0, 0];
- arrow_fn_5 = item => item == 0;
- result_5 = check_filter(arr_5, examine_filter, arrow_fn_5);
- // Case 6
- var arr_6 = ['s', 3, []];
- arrow_fn_6 = item => item == 0;
- result_6 = check_filter(arr_6, examine_filter, arrow_fn_6);
- // Result conclusion
- if (result_1 && result_2 && result_3 && result_4 && result_5 && result_6) {
- return true
- } else {
- return false
- }
- }
- console.log(main_check(customFilter));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement