gpt4 book ai didi

javascript - 无法读取 Javascript 中未定义错误消息的属性 'length'

转载 作者:行者123 更新时间:2023-12-02 23:33:02 25 4
gpt4 key购买 nike

我正在尝试解决代码大战中的代码挑战,但不明白为什么当我尝试执行以下操作时会收到有关数组内字符串的 .length 的错误消息运行。

这绝对是第 7 行中的第一个 .length。我尝试运行其他 arr[i].lengths 并且它们有效,我认为这是一个问题有范围吗?

function longestConsec(strarr, k) {
var arr = [];
if (strarr.length == 0 || k > strarr.length || k <= 0) {
return "";
}
for (var i = 1; i <= strarr.length; i++) {
if (strarr[i].length > strarr[0].length && arr.length < k) {
arr.push(strarr[i]);
}
}
arr.join('');
}

longestConsec(["zone", "abigail", "theta", "form", "libe", "zas"], 2);

应该返回“abigailtheta”,因为它是后面的2个最长的字符串第一个字符串是要求。

VM304:7 Uncaught TypeError: Cannot read property 'length' of undefined

最佳答案

数组中的元素从 0 到 length - 1

数组中有 6 个字符串,最后一个字符串的索引为 5。

由于条件设置为当索引低于或等于strarr.length时应进行迭代,因此它会尝试迭代不存在的第 6 个元素。

您应该更改迭代的条件:

for (var i = 1; i < strarr.length; i++) {

function longestConsec(strarr, k) {
var arr = [];
if (strarr.length == 0 || k > strarr.length || k <= 0) {
return "";
}
for (var i = 1; i < strarr.length; i++) {
if (strarr[i].length > strarr[0].length && arr.length < k) {
arr.push(strarr[i]);
}
}
arr.join('');
alert(arr);
}

longestConsec(["zone", "abigail", "theta", "form", "libe", "zas"], 2);

关于javascript - 无法读取 Javascript 中未定义错误消息的属性 'length',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408451/

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