首页 > 解决方案 > 如何仅使用while循环将具有普通ECMAscript5的数组转换为大写?

问题描述

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

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

var UpperCase = [];

我尝试过这样的对象(仍然有一些错误,这只是一个想法):

var change = {
  "mary":"MARY",
  "john":"JOHN",
  "james":"JAMES",
  "anna":"ANNA",
  "jack":"JACK",
  "jeremy":"JEREMY",
  "susanne":"SUSANNE",
  "caroline":"CAROLINE",
  "heidi":"HEIDI"
}
for(var key in change) {
  var obj = change[key];

  for (var prop in obj) {
  var value = obj[prop];
}
}

while(names[i]===change.key) {
  for(var i=0; i<names.length; i++) {
  UpperCase = change.value[i];
} }

我希望有人可以帮助我解决这个问题。

谢谢!

标签: javascriptarraysecmascript-5uppercase

解决方案


您需要创建一个增量 (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)

推荐阅读