gpt4 book ai didi

javascript - 当数组作为参数传递并且长度尚不存在时,如何在函数(在 JavaScript 中)中使用数组的长度?

转载 作者:行者123 更新时间:2023-11-30 06:13:59 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,它接受一个字符串数组 (strar) 和一个整数 (k) 作为参数,并返回由以下内容组成的最长字符串k 数组中连续字符串的数量,不以逗号分隔。我需要在函数执行过程中经常调用 strarr.length,但我一直收到错误消息,提示它无法读取该参数的长度。

这是我第一次处理这个问题,我还没有找到很好的解决方案的互联网搜索结果。我怀疑我遗漏了一些非常明显的东西。我已经尝试将 strar 数组参数的值推送到一个新数组中,但仍然没有成功。

因此,如果我将 const = ['apple','pineapple','banana','strawberry'] 作为我的 strarr 参数传递,并将 2 作为 k,那么它应该返回 'bananastrawberry',因为它是数组中最长的连续字符串对。

const arr = ['apple', 'pineapple', 'banana', 'strawberry']


function longestConsec(strarr, k) {
if (strarr.length === 0) {
return "";
} else if (k > strarr.length) {
return "";
} else if (k <= 0) {
return "";
}
let longest = "";
let strLeng = 0;
for (let i = 0; i < strarr.length; i++) {
for (let j = i + (k - 1); j > 0; j--) {
strLeng += strarr[j].length;
}
if (strLeng > longest.length) {
longest = strarr.slice(i, (i + k)).join("");
}
}
return longest;
}
console.log(longestConsec(arr, 2))

最佳答案

如前所述,您正在尝试访问数组中不存在的索引。快速修复可能是:

const arr = ['apple', 'pineapple', 'banana', 'strawberry']


function longestConsec(strarr, k) {
if (strarr.length === 0) {
return "";
} else if (k > strarr.length) {
return "";
} else if (k <= 0) {
return "";
}
let longest = "";
let strLeng = 0;
for (let i = 0; i < strarr.length; i++) {
for (let j = i + (k - 1); j > 0; j--) {
if (j >= strarr.length) {
break;
}
strLeng += strarr[j].length;
}
if (strLeng > longest.length) {
longest = strarr.slice(i, (i + k)).join("");
}
}
return longest;
}
console.log(longestConsec(arr, 2))

但我建议看看是否有比添加 break 语句更好的解决方案。

关于javascript - 当数组作为参数传递并且长度尚不存在时,如何在函数(在 JavaScript 中)中使用数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57312513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com