-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfilter.js
More file actions
30 lines (24 loc) · 795 Bytes
/
filter.js
File metadata and controls
30 lines (24 loc) · 795 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function myFilter(array, func) {
let newArray = [];
for (let i = 0; i < array.length; i += 1) {
if (func(array[i])) {
newArray.push(array[i]);
}
}
return newArray;
}
let isPythagoreanTriple = function (triple) {
return Math.pow(triple.a, 2) + Math.pow(triple.b, 2) === Math.pow(triple.c, 2);
};
console.log(myFilter([{ a: 3, b: 4, c: 5 },
{ a: 5, b: 12, c: 13 },
{ a: 1, b: 2, c: 3 },], isPythagoreanTriple));
// returns [ { a: 3, b: 4, c: 5 }, { a: 5, b: 12, c: 13 } ]
function multiplesOfThreeOrFive(values) {
return myFilter(values, isMultipleOfThreeOrFive);
}
function isMultipleOfThreeOrFive(value) {
return value % 5 === 0 || value % 3 === 0;
}
console.log('');
console.log(multiplesOfThreeOrFive([1, 3, 5, 7, 11, 18, 16, 15])); // [ 3, 5, 18, 15 ]