Javascript 返回具有参数传递的length属性的数组
目前仍在应对这一挑战Javascript 返回具有参数传递的length属性的数组,javascript,arrays,string-length,Javascript,Arrays,String 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) { } 现在有
// 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) {
}
现在有
function stringLengths(str1, str2, str3, str4) {
var arr = [];
for (var i = 1; i < arguments.length; i++) {
arr.push(arguments[i].length);
}
return arr;
}
函数字符串长度(str1、str2、str3、str4){
var-arr=[];
for(var i=1;i
这将返回一个空数组
如何将每个参数的length属性推入
数组
,并返回包含每个参数长度的数组 您的代码运行正常,只是从1
开始,而不是从索引0
开始。
数组有一个从零开始的索引,因此当您只传递1个参数时,会得到初始的空数组,因为循环根本没有执行
函数字符串长度(str1、str2、str3、str4){
var-arr=[];
for(var i=0;i 控制台日志(x)代码>除了从1
开始而不是从索引0
开始之外,您的代码运行正常。
数组有一个从零开始的索引,因此当您只传递1个参数时,会得到初始的空数组,因为循环根本没有执行
函数字符串长度(str1、str2、str3、str4){
var-arr=[];
for(var i=0;i 控制台日志(x)代码>您的代码工作正常。如果需要所有参数的长度,只需要以i=0而不是1开始循环
函数字符串长度(str1、str2、str3、str4){
var-arr=[];
for(var i=0;i log(stringlength(“hello”、“ok”、“doh”))代码>您的代码工作正常。如果需要所有参数的长度,只需要以i=0而不是1开始循环
函数字符串长度(str1、str2、str3、str4){
var-arr=[];
for(var i=0;i log(stringlength(“hello”、“ok”、“doh”))代码>若您只需要一个长度数组:
function stringLengths(str1, str2, str3, str4) {
return Array.from(arguments).map((x) => x.length);
}
如果您只需要一个长度数组,则应执行以下操作:
function stringLengths(str1, str2, str3, str4) {
return Array.from(arguments).map((x) => x.length);
}
您可以使用ES6功能的..
和Array.map
来完成此操作。因此,您将处理任意数量的字符串
函数字符串长度(…args){
返回args.map(x=>x.length);
}
console.log(字符串长度)(
‘str1’,
“我不是巧克力”,
“羊角面包松饼”,
));
您可以使用属于ES6功能的..
和Array.map
。因此,您将处理任意数量的字符串
函数字符串长度(…args){
返回args.map(x=>x.length);
}
console.log(字符串长度)(
‘str1’,
“我不是巧克力”,
“羊角面包松饼”,
));
使用隐式对象参数
可以获取键,如果传递的对象没有该属性,请检查属性长度
const stringlength=函数(){
返回Object.keys(arguments).map(k=>arguments[k].length | | 0);
}
log(stringlength('ele','from','stackoverflow',2222))
使用隐式对象参数
可以获取键,如果传递的对象没有该属性,请检查属性长度
const stringlength=函数(){
返回Object.keys(arguments).map(k=>arguments[k].length | | 0);
}
log(stringlength('ele','from','stackoverflow',2222))
它对我有效,除了i
必须从0开始,因为数组在JS中是基于0的。yest尝试过它,从索引0开始它对我有效,除了i
必须从0开始,因为数组在JS中是基于0的。yest尝试过它,从索引0I开始,我喜欢这样做,因为您专门展平了参数,而不是使用arguments对象。仅供参考,这适用于箭头函数,参数不适用。我认为这是最好的回答,我喜欢这个,因为你特别地将参数展平,而不是使用arguments对象。仅供参考,这适用于箭头函数,参数不适用。我认为这是最好的答案,只是补充一下,参数
不是数组,而是数组式的,并且是基于零的。它只有数组的length
属性。例如,它没有shift
或push
。但是,您可以使用数组方法,例如.map()
,甚至可以使用其上的扩展运算符(…arguments
)。请参阅其他答案中的一个示例。只需添加,arguments
不是数组,而是类似数组的,并且是基于零的。它只有数组的length
属性。例如,它没有shift
或push
。但是,您可以使用数组方法,例如.map()
,甚至可以使用其上的扩展运算符(…arguments
)。请参阅其他答案中的一个示例。根据MDN文档,参数
没有map
方法,因此这是无效的实现根据MDN文档,参数
没有map
方法,因此这是无效的实现