[英]Return an array with the length property of arguments passes
目前陷入這一挑戰。
// 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;
}
這給了我一個空數組。
如何將每個參數的length屬性推入Array
並返回帶有每個參數長度的數組?
您可以使用ES6的...
和Array.map
。 因此,您將處理任意數量的字符串。
function stringLengths(...args) { return args.map(x => x.length); } console.log(stringLengths( 'str1', 'je suis un chocolat', 'les croissants sont bons', ));
更簡潔
const stringLengths = (...args) => args.map(x => x.length); console.log(stringLengths( 'str1', 'je suis un chocolat', 'les croissants sont bons', ));
如果只需要長度數組:
function stringLengths(str1, str2, str3, str4) {
return Array.from(arguments).map((x) => x.length);
}
應該做的把戲
您的代碼工作正常,除了您從1
開始而不是從索引0
。 數組具有從零開始的索引,因此,當我僅傳遞1個參數時,由於循環根本沒有執行,因此會得到初始的空數組。
function stringLengths(str1, str2, str3, str4) { var arr = []; for (var i = 0; i < arguments.length; i++) { arr.push(arguments[i].length); } return arr; } var x = stringLengths('123', '123456789', '12345'); console.log(x);
有關在此處訪問數組元素的更多詳細信息
您的代碼工作正常。 如果您想要所有參數長度,則只需要從i = 0而不是1開始循環。
function stringLengths(str1, str2, str3, str4) { var arr = []; for (var i = 0; i < arguments.length; i++) { arr.push(arguments[i].length); } return arr; } console.log(stringLengths("hello", "okay", "doh"));
使用隱式對象arguments
您可以獲得鍵,如果傳遞的對象沒有該attr,請檢查attr length
。
const stringLengths = function() { return Object.keys(arguments).map(k => arguments[k].length || 0); } console.log(stringLengths('ele', 'from', 'stackoverflow', 2222));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.