几个星期前我开始学习JavaScript,而且我总是发现自己陷入了循环问题。
就像在这个例子中,我不明白for循环的作用,有人可以给我一些如何理解这个的提示吗?
let upper = function(strings, ...values) {
let result = '';
for (var i = 0; i < strings.length; i++) {
result += strings[i];
if (i < values.length) {
result += values[i];
}
}
console.log(result);
return result.toUpperCase();
};
答案 0 :(得分:2)
代码中的注释将解释这里发生的事情
//input is array with string and array with values.
//strings, ...values - that is means that first argument will be strings, but all arguments since first will be pushed into array called values
let upper = function(strings, ...values) {
console.log(strings); // ['a', 'b'];
console.log(values); // [1, 2];
let result = ''; // result is an empty string
for (var i = 0; i < strings.length; i++) { // looping the array of string
result += strings[i]; // result = result + string from strings array at first iteration you will have result equal to 'a'
if (i < values.length) { //check do we have number i in values array
result += values[i]; // if yes than result = result + string from vaulues. at first iteration you will have result equal to 'a' + 1 that is equal to 'a1'
} // end of if
} // and so on
console.log(result); // 'a1b2'
return result.toUpperCase(); // returning result in uppercase
};
var res = upper(['a', 'b'], 1, 2);
console.log (res); // 'A1B2'
答案 1 :(得分:-1)
它将您传入的字符索引中的字符串的特定字符替换为values
的数组。
但是,有一个缺点 - 它不支持使用相应的string
数组值替换传入values
的第一个字符。
values
可以是array
或string
,但这并不能解决此功能的缺陷。
答案 2 :(得分:-1)
let upper = function(strings, ...values) {
这是一个函数声明,它将一个匿名函数存储在变量&#34; upper&#34;。
let result = '';
这会将空字符串分配给&#34;结果&#34;。
for (var i = 0; i < strings.length; i++) {
result += strings[i];
if (i < values.length) {
result += values[i];
}
}
for循环,遍历传递给匿名函数的字符串并将结果存储在&#34;结果&#34;中。如果有其他参数,则将这些参数存储在&#34;结果&#34;同样。
console.log(result);
return result.toUpperCase();
};
这里调用console.log并将result作为参数,然后在结果上运行本机toUpperCase方法后返回结果值。
你不能拥有这样的功能,它不会运行,参数不应该是&#34; ...值&#34;。但这就是它的作用,取一个值并将字符串作为大写字母字符串返回。