-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearchName.js
More file actions
51 lines (48 loc) · 1.45 KB
/
searchName.js
File metadata and controls
51 lines (48 loc) · 1.45 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
const name = [
"Abigail", "Alexandra", "Alison",
"Amanda", "Angela", "Bella",
"Carol", "Caroline", "Carolyn",
"Deirdre", "Diana", "Elizabeth",
"Ella", "Faith", "Olivia","Penelope"
]
function searchName(keywords, dataMax, callback){
let nameList = callback(keywords, name) // Memanggil fungsi callback
let diff = 0
if(dataMax<nameList.length){
diff = nameList.length - dataMax
}
let i = 0
while(i<diff){
nameList.pop() //Mengurangi data dari index terakhir array
i++
}
if(nameList.length>0){
return nameList
}else{
return "Tidak ada nama yang sesuai"
}
}
function searching(key, arrNames){
let arrSearch = []
arrNames.forEach(element => {
let j = 0
let k = 0
let isThere = 0
while(j<element.length){
if(element[j]===key[k] || element[j].toUpperCase()===key[k] || element[j].toLowerCase()===key[k]){ //Melakukan pengecekan kecocokan dengan huruf ke-k dari kata kunci
k++
isThere++
}else if(element[j]!==key[k-1] && element[j].toUpperCase()!==key[k-1] && element[j].toLowerCase()!==key[k-1]){
k = 0
isThere = 0
}
j++
if(isThere===key.length){
arrSearch.push(element)
j = element.length
}
}
});
return arrSearch
}
console.log(searchName("an", 3, searching))