如何使用 for of 循环,得到一个数组作为输出

how to use for of loop, resulting an array as an output

我想将名为 'days' 的数组中的日期大写,并仅通过调用 'console.log(days)'
以数组形式获取结果 请看下面: 谁能帮我把for of 循环块里的代码补完?

编辑(总结): 我质疑这个是为了知道在这种情况下每个 'day' 的值没有改变的原因。 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);

for of 不像任何简单的循环。在它下面是另一个建筑。

您正在获取循环中每个项目的副本。所以 day 只是 项的值 copy 并且将其更改为具有另一个值不会更改数组中的项。

这是 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);

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

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

you can also use reduce method of array

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

let result = days.reduce((r,a)=>r.concat(a.charAt(0).toLocaleUpperCase()+a.slice(1)),[]);

console.log(result)

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

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

for (let day of days){ 

    let firstLetter= day.substr(0,1)
    let otherLetters=day.substr(1)
    console.log(firstLetter.toUpperCase().concat(otherLetters));

}