对于下面的问题,我可以在函数中使用for循环调用参数(我认为他们称之为param的吗?)?我手动编码,但这没什么好玩的!自动化将是非常棒的。
// stringLengths takes in four strings
// it returns an array containing the length of each string
// Example: stringLengths('mushroom', 'onion', '', 'garlic') returns [8, 5, 0, 6]
function stringLengths(str1, str2, str3, str4) {
}
发布于 2018-09-19 11:13:52
你可以使用[str1.length,str2.length,str3.length,str4.length]
,不需要循环:
// stringLengths takes in four strings
// it returns an array containing the length of each string
// Example: stringLengths('mushroom', 'onion', '', 'garlic') returns [8, 5, 0, 6]
function stringLengths(str1, str2, str3, str4) {
return [str1.length,str2.length,str3.length,str4.length];
}
console.log(stringLengths('mushroom', 'onion', '', 'garlic'));
如果函数有任意数量的参数,则使用arguments
包含传入的所有函数属性的对象,此时您将需要一个循环。
// stringLengths takes in four strings
// it returns an array containing the length of each string
// Example: stringLengths('mushroom', 'onion', '', 'garlic') returns [8, 5, 0, 6]
function stringLengths() {
var res = [];
for(var i=0; i<arguments.length; i++){
res.push(arguments[i].length)
}
return res;
}
console.log(stringLengths('mushroom', 'onion', '', 'garlic'));
发布于 2018-09-19 12:07:22
您可以使用Array#map并利用所有非箭头函数中存在的arguments对象。
function stringLengths() {
return Object.values(arguments).map((arg) => arg.length)
}
console.log(stringLengths('lorem', 'ipsum', 'sit'))
https://stackoverflow.com/questions/-100002688
复制相似问题