gpt4 book ai didi

Javascript 多数组不工作

转载 作者:行者123 更新时间:2023-11-27 22:39:15 27 4
gpt4 key购买 nike

您好,我正在尝试打印出数组中的第一个元素和附加到该元素的元素。我在 Firefox 中得到“helloh”,在 IE 中得到“helloundefined”。有谁知道为什么这不起作用。

这是一个 jsfiddle.. http://jsfiddle.net/ZtuAu/

<script language=javascript> 
var test = new Array();
test[0] = new Array();

test[0] = "hello";
test[0][0] = "world";
document.write(test[0] + test[0][0]);
</script>

最佳答案

test[0] 只能有一个值。你试图给它两个值。而且,您还会发现只有一些浏览器允许使用数组语法来检索字符串中的特定字符。

首先,你这样做:

test[0] = new Array();

然后,你这样做:

test[0] = "hello";

第二个替换你的第一个,这样 test[0] 不包含数组,它包含一个字符串 "hello" 所以什么时候做这个:

test[0][0] = "world"

您正在尝试将 [0] 分配给 test[0] 中的 "hello" 字符串,这是不允许的字符串对象(所以它什么都不做)。

然后,当您尝试在 document.write() 语句中读取 test[0][0] 时,您正在尝试执行 [0 ]test[0] 中的 "hello" 字符串上。字符串对象在技术上不允许使用数组语法索引字符串,但一些浏览器无论如何都允许它作为从字符串中检索单个字符的快捷方式。这就是为什么您在不同的浏览器中会得到不同的结果(它返回 "hello" 字符串的第 0 个字符,即 "h")。

注意:如果您确实想要检索字符串的特定字符,请使用 charAt(n)。参见 MDN for doc .

也许你想做的是这样的:

<script language=javascript> 
var test = new Array();
test[0] = "hello";
test[1] = "world";
document.write(test[0] + test[1]);
</script>

关于Javascript 多数组不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044428/

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