-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusing-filter.js
More file actions
64 lines (59 loc) · 1.31 KB
/
using-filter.js
File metadata and controls
64 lines (59 loc) · 1.31 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
function Vowels(s){
if (s=='a' || s=='e' || s=='i' || s=='o' || s=='u'){
return true
}
if (s=='A' || s=='E' || s=='I' || s=='O' || s=='U'){
return true
}
return false
}
function countV(s,k){
let c=0
s=s.split('')
for (let i=0;i<s.length;i++){
if (Vowels(s[i])){
c++
}
}
if (c>=k){
return true
}
return false
}
function duplicate(s){
if (s==''){
return false
}
let v=''
for (let i=0;i<s.length;i++){
if (v!='' && Vowels(s[i]) && s[i].toLowerCase()!=v){
return false
}
if (Vowels(s[i])){
v=s[i].toLowerCase()
}
}
return true
}
function filterShortStateName(arr){
return arr.filter((s)=>s.length<7)
}
function filterStartVowel(arr){
return arr.filter((s) => Vowels(s[0]))
}
function filter5Vowels(arr){
return arr.filter((s)=>countV(s,5))
}
function filter1DistinctVowel(arr){
return arr.filter((s)=> duplicate(s))
}
function multiFilter(arr) {
arr = arr.filter((item) => {
let capital = item.capital.length >= 8;
let name = !/^[aeiou]/i.test(item.name);
let tag = /[aeiou]/i.test(item.tag);
let region = item.region !== "South";
return capital && name && tag && region;
});
return arr;
}