-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
94 lines (61 loc) · 2.41 KB
/
Copy pathscript.js
File metadata and controls
94 lines (61 loc) · 2.41 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
console.log("SortingTool");
let input_text = document.querySelector(".input-text");
let output_box = document.querySelector(".output-box");
let output_text = document.querySelector(".output-text");
let ascending_btn = document.getElementById("ascending-btn");
let descending_btn = document.getElementById("descending-btn");
// ------------------------------On Button Click-----------------------------------------------------
function ascendingSort(){
ascending_btn.classList.add("active");
descending_btn.classList.remove("active");
doSort();
}
function descendingSort(){
descending_btn.classList.add("active");
ascending_btn.classList.remove("active");
doSort();
}
// -----------------------------------------------------------------------------------------------------
window.addEventListener(
"input",
function (event) {
if (event.target.matches(".input-text")) {
doSort();
}
},
false
);
function doSort() {
let text = input_text.value;
let split_text = text.split(/[\r?\n ,]+/);
let numArr = [];
let strArr = [];
let resArr = [];
for (let i = 0; i < split_text.length; i++) {
if (split_text[i].match(/^[0-9]*(?<![a-zA-Z])$/)) {
numArr.push(split_text[i]); //To add only numbers to seprate array
}
else {
strArr.push(split_text[i]); //To add only characters to seprate array
}
}
numArr = numArr.filter(v => v != ''); //To remove extra empty element in array
// ----------Sort Numbers----------------
numArr.sort(function (a, b) {
return a - b;
});
//-----------Sort String-----------------
strArr.sort(function (a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
});
// ------------------Printing Result------------------------------------------------------------
if(ascending_btn.classList.contains("active")){
resArr = numArr.concat(strArr);
output_text.innerHTML = resArr.join('\n');
}
else if(descending_btn.classList.contains("active")){
resArr = numArr.concat(strArr);
output_text.innerHTML = resArr.reverse().join('\n');
}
}
// ---------------------------------------------END------------------------------------------------------------------