Javascript 如何使用while循环将带有纯ECMAScript 5的数组转换为大写?

Javascript 如何使用while循环将带有纯ECMAScript 5的数组转换为大写?,javascript,arrays,ecmascript-5,uppercase,Javascript,Arrays,Ecmascript 5,Uppercase,我必须做这个简单的练习,但我真的很努力。我必须将所有名称转换为大写,并将其传递给空数组,仅使用while循环,并且我不能使用任何方法,仅使用纯javascript 5: var names = ['rob', 'dwayne', 'james', 'larry', 'steve']; var UpperCase = []; 我试过这样一个对象(仍然有一些错误,这只是一个想法): var变化={ “玛丽”:“玛丽”, “约翰”:“约翰”, “詹姆斯”:“詹姆斯”, “安娜”:“安娜”, “杰克

我必须做这个简单的练习,但我真的很努力。我必须将所有名称转换为大写,并将其传递给空数组,仅使用while循环,并且我不能使用任何方法,仅使用纯javascript 5:

var names = ['rob', 'dwayne', 'james', 'larry', 'steve'];

var UpperCase = [];
我试过这样一个对象(仍然有一些错误,这只是一个想法):

var变化={
“玛丽”:“玛丽”,
“约翰”:“约翰”,
“詹姆斯”:“詹姆斯”,
“安娜”:“安娜”,
“杰克”:“杰克”,
“杰里米”:“杰里米”,
“苏珊”:“苏珊”,
“卡罗琳”:“卡罗琳”,
“海蒂”:“海蒂”
}
for(变更中的var键){
var obj=更改[键];
用于(obj中的var prop){
var值=对象[prop];
}
}
while(名称[i]==change.key){

对于(var i=0;i您需要创建一个增量(i),以便while循环知道何时停止。对于for循环来说,这是一个更好的情况,但是while循环也可以工作

var names = ['rob', 'dwayne', 'james', 'larry', 'steve']
var i = 0
var result = []

while (i < names.length) {
  result.push(names[i].toUpperCase())
  i++ 
}

console.log(result)
var name=['rob','dwayne','james','larry','steve']
变量i=0
var结果=[]
while(i
您应该在map中使用handler函数:

var names = ['rob', 'dwayne', 'james', 'larry', 'steve'];
var UpperCase = names.map(function(x){ return x.toUpperCase() });

对@andrewgi的答案进行了一些改进:

var names = ['rob', 'dwayne', 'james', 'larry', 'steve']
var i = 0
var result = []

while (i < names.length) {
  result.push(names[i].toUpperCase())
  i++ 
}

console.log(result)
var name=['rob','dwayne','james','larry','steve']
变量i=0
var结果=[]
while(i

我删除了
名称后的
+1
。长度检查并拼写了
toUpperCase
,大小写正确。

而不是使用toUpperCase():

使用此选项检查字符是大写还是小写

str[i].charCodeAt(0) > 96

使用临时命令

var i = 0;
while (i < str.length) ...
我希望这个功能对您有所帮助

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;
}
函数大写字母(str){
var i=0;
var输出=”;
而(i96)
?String.fromCharCode(str[i].charCodeAt(0)-32)
:String.fromCharCode(str[i].charCodeAt(0));
输出+=x;
i++;
}
返回输出;
}
例如:

函数大写字母(str){
var i=0;
var输出=”;
而(i96)?
String.fromCharCode(str[i].charCodeAt(0)-32):
String.fromCharCode(str[i].charCodeAt(0));
输出+=x;
i++;
}
返回输出;
}
var大写=[];
变量名称=[“rOb”、“dwayne”、“james”、“larry”、“steve”];
var i=0;
while(iconsole.log(大写)
我不能使用任何方法
…比如说??????
toUpperCase
是纯Java脚本基本上不可能回答这个问题,因为你没有清楚地表达这个练习的局限性。我想说明写在什么地方了。你能和我们分享一下,而不是给我们一个淡化的版本吗其中一个?这里有一个链接,它将为您打开一些新的世界,包括一个链接,因为我不知道OP是否非常了解
map
。这个练习应该避免使用任何帮助程序或函数,只是尽可能使用最简单的javascript,使用while。谢谢我在发布您的帮助程序或函数之前在编辑中这样做了。您的是一个确切的例子我的复制品。我一定是在你编辑的时候做了我的回答。我认为否决票有点苛刻。对不起,打扰了你。谢谢,但是我想要一些不使用方法的东西,比如。toUpperCase和。PushThank,但是我想要一些不使用方法的东西,比如。toUpperCase和。PushB。这是一个很好的组合!你能做到吗e而不创建函数?至于“?”和“:”它们像if语句吗?我还不知道它们
 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;
}