- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个函数,它接受一个字符串数组 (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/
我需要面对一个架构/设计决策。 我正在开发一个 Cordova/Meteor 应用程序,它具有独特的入门体验。新用户会看到一个向导,引导他们完成填写某些表单的步骤。 向导流程会等到最后一步才能注册用户
我想通过 psql 在空数据库中加载一些 SQL 函数: psql -d my_database -f fuctions.sql --set ON_ERROR_STOP=1 我使用 --set ON_
我是一名优秀的程序员,十分优秀!