gpt4 book ai didi

程序运行时Javascript代码显示未定义

转载 作者:行者123 更新时间:2023-11-28 05:55:48 26 4
gpt4 key购买 nike

我的程序必须使用字符串原型(prototype)属性,即使它是不必要的。每当单击提交按钮时,都会产生一堆未定义的结果。在 show_alphabet 函数中,我有一个名为“str”的变量,它是一个大写字母的字符串。

在 show_alphabet 函数中,我有使用 String 对象的原型(prototype)属性添加名为“sendArray”的方法并分配此 (sendArray) 一个返回 split() 方法的函数的代码。 split() 方法将分割字母字符串。

我试图将“str”中的字母显示为一个数组,其中带有句点冒号,后跟每个字母,并将每个字母放在单独的行上。例如:A:乙:C:...

虽然我意识到不必使用字符串原型(prototype)属性,但我的作业指南表明必须使用它们。这是我的代码的相关部分。

<form>
<button type = "button" onclick = show_alphabet()>submit</button>
</form>
<script type "text/javascript">
function show_alphabet() {
var str = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
String.prototype.sendArray = function() {
return this.split("");
}
var arr = str.sendArray
for (i = 0; i<str.length- 1; i++) {
str.split(":<br />");
document.write(arr[i]);
}
}

最佳答案

这个:var arr = str.sendArray

应该是:var arr = str.sendArray()

否则,您将把函数分配给 arr 而不是函数结果。

示例:

var str = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
String.prototype.sendArray = function() {
return this.split("");
}
var arr = str.sendArray();
var arrLength = arr.length; // length of the array should be calculated before the loop, or it will be calculated on every interaction.
for (i = 0; i<arrLength; i++) {
arr[i]+=":<br />"
console.log(arr[i]);
}

关于程序运行时Javascript代码显示未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701295/

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