javascript初学者。 “为...而在......”问题。
应用于数组对象,但无法定义天数。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Loops and Control</title>
</head>
<body>
<script>
var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var message = "";
for (i in days) {
message += 'Day ' + i + ' is'
day[i] + '\n';
}
alert(message);
</script>
</body>
</html>
答案 0 :(得分:1)
您应该使用for
循环来遍历数组。不建议将For in
用于数组。
否则您也可以使用forEach
var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var message = [];
for(var i = 0; i < days.length; i++) {
message.push('Day', (i + 1), 'is', days[i] + '\n');
}
alert(message.join(' '));
&#13;
答案 1 :(得分:1)
那里有几个问题:
day[i]
,但没有day
变量(称为days
)。for-in
不适用于循环数组条目; details of your various options here。+
' is'
i
。所以:
var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
var message = "";
for (var i = 0; i < days.length; ++i) {
message += 'Day ' + i + ' is ' + days[i] + '\n';
}
alert(message);
或者,数组有几个可用于对其条目执行操作的功能。有forEach
,循环遍历条目:
var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
var message = "";
days.forEach(function(day, i) {
message += 'Day ' + i + ' is ' + days[i] + '\n';
});
alert(message);
...或reduce
,正是针对这个用例:从数组的条目中构建结果:
var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
var message = days.reduce(function(m, day, i) {
return m + 'Day ' + i + ' is ' + days[i] + '\n';
}, "");
alert(message);
答案 2 :(得分:0)
数组的名称在for内拼写错误。它应该是:
for (i in days) {
message += 'Day ' + i + ' is' + days[i] + '\n';
}
i
将获取索引的值,并使用它来访问原始数组
答案 3 :(得分:0)
您可以使用数组的reduce方法实现此目的
const days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
const newLine = (acc, curr) => acc += curr + '\n';
const message = days.reduce(newLine, '');
console.log(message)
&#13;