如何使用循环,导致数组作为输出

时间:2017-09-17 07:56:45

标签: javascript for-loop capitalize for-of-loop

我想将名为'days'的数组中的日期大写,并仅通过调用'console.log(days)'以数组形式获取结果 请看下面: 任何人都可以帮我完成循环块中的代码吗?

编辑(摘要): 我质疑这一点,以了解在这种情况下每个'日'的价值不会改变的原因。和Suren Srapyan为此提供了一个很好的答案: '你得到循环中每个项目的副本。因此,day只是项目值的副本,并将其更改为具有另一个值,不会更改数组中的项目。“

let days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];

for (day of days) {
    day = day[0].toUpperCase() + day.slice(1);
    // your code goes here

}
console.log(days);

4 个答案:

答案 0 :(得分:0)

for of不喜欢任何简单的循环。在它下面是另一种结构。

您将获得循环中每个项目的副本。因此day只是项目值副本,并将其更改为具有其他值不会更改数组中的项目。

以下是for of循环下的内容。



let days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];

const iterator = days[Symbol.iterator]();
let item = iterator.next();

while(!item.done) {
    console.log(item.value);
    item = iterator.next();
}




以上代码显示for of循环仅用于只读目的

您可以使用Array#map功能



let days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];

days = days.map(day => day[0].toUpperCase() + day.slice(1));

console.log(days);




答案 1 :(得分:0)

您也可以使用forEach循环来完成任务。

days.forEach(function(item, index, array) {
      array[index] = item[0].toUpperCase() + item.slice(1)
});
console.log(days);

答案 2 :(得分:0)

  

你也可以使用数组的reduce方法

govt_id

答案 3 :(得分:0)

尝试这个,我认为这会有所帮助

var theString = " Data\r\n  more data <DIV> ";
$("<small class='text-success'></small>").css("white-space", "pre").text(theString).appendTo(document.body);