-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathalternatingCase.js
More file actions
35 lines (32 loc) · 1.42 KB
/
Copy pathalternatingCase.js
File metadata and controls
35 lines (32 loc) · 1.42 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
// Description:
// altERnaTIng cAsE <=> ALTerNAtiNG CaSe
// Define String.prototype.toAlternatingCase (or a similar function/method such as to_alternating_case/toAlternatingCase/ToAlternatingCase in your selected language; see the initial solution for details) such that each lowercase letter becomes uppercase and each uppercase letter becomes lowercase. For example:
// "hello world".toAlternatingCase() === "HELLO WORLD"
// "HELLO WORLD".toAlternatingCase() === "hello world"
// "hello WORLD".toAlternatingCase() === "HELLO world"
// "HeLLo WoRLD".toAlternatingCase() === "hEllO wOrld"
// "12345".toAlternatingCase() === "12345" // Non-alphabetical characters are unaffected
// "1a2b3c4d5e".toAlternatingCase() === "1A2B3C4D5E"
// "String.prototype.toAlternatingCase".toAlternatingCase() === "sTRING.PROTOTYPE.TOaLTERNATINGcASE"
//mine
String.prototype.toAlternatingCase = function () {
let newString = "";
for (let i = 0; i < this.length; i++) {
if (this[i] === this[i].toUpperCase()) {
newString = newString + this[i].toLowerCase();
continue;
}
if (this[i] === this[i].toLowerCase()) {
newString = newString + this[i].toUpperCase();
continue;
}
newString = newString + this[i];
}
return newString;
};
//better and shorter
String.prototype.toAlternatingCase = function () {
return this.split("")
.map((a) => (a === a.toUpperCase() ? a.toLowerCase() : a.toUpperCase()))
.join("");
};