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;ilog(stringlength(“hello”、“ok”、“doh”))您的代码工作正常。如果需要所有参数的长度,只需要以i=0而不是1开始循环

函数字符串长度(str1、str2、str3、str4){
var-arr=[];
for(var i=0;ilog(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
方法,因此这是无效的实现