Вместо использования toUppercase ():
Проверьте, является ли символ прописным или строчным с этим
str[i].charCodeAt(0) > 96
charCodeAt
fromCharCode
Использование только в то время как
var i = 0;
while (i < str.length) ...
Не использовать функцию push для массива
UPPERCASE[UPPERCASE.length] = uppercase(names[i]);
Надеюсь, эта функция поможет вам
function uppercase(str) {
var i = 0;
var output = "";
while (i < str.length) {
var x =
(str[i].charCodeAt(0) > 96)
? String.fromCharCode(str[i].charCodeAt(0) - 32)
: String.fromCharCode(str[i].charCodeAt(0));
output += x;
i++;
}
return output;
}
Пример:
function uppercase(str) {
var i = 0;
var output = "";
while (i < str.length) {
var x =
(str[i].charCodeAt(0) > 96) ?
String.fromCharCode(str[i].charCodeAt(0) - 32) :
String.fromCharCode(str[i].charCodeAt(0));
output += x;
i++;
}
return output;
}
var UPPERCASE = [];
var names = ["rOb", "dwayne", "james", "larry", "steve"];
var i = 0;
while (i < names.length) {
UPPERCASE[UPPERCASE.length] = uppercase(names[i]);
i++;
}
console.log(UPPERCASE);
Обновление
Ответ без функции и линейного условия
var UPPERCASE = [];
var names = ["rOb", "dwayne", "james", "larry", "steve"];
var i = 0;
while (i < names.length) {
var j = 0,
output = "",
str = names[i];
while (j < str.length) {
var x;
if (str[j].charCodeAt(0) > 96) {
x = String.fromCharCode(str[j].charCodeAt(0) - 32);
} else {
x = String.fromCharCode(str[j].charCodeAt(0));
}
output += x;
j++;
}
UPPERCASE[UPPERCASE.length] = output;
i++;
}
console.log(UPPERCASE);