JavaScript为什么用push方法为数组添加新的索引的时候,会出现这种情况?

如题所述

你的 myFirstNum是一个定值,就是随机一个0-10的数字(之后的话 一直就是一个数字  不会再去变了 比如说你随意一个2  那么在循环里 一直给数组里添加的就是2),你每次循环都去判断这个数值是否和myFirstArr的第i个是否相同,这个来说是没啥必要的,因为每次的第i个都是空的(undefined),只有当push的时候才会有值,这样的话,你每次都都是添加进去myFirstNum这个定值,第二次在控制台打印出的是数组的长度,我看了 你写的期望得到的数组是[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10 ],那么你写这么多,我没看出来是有啥必要的,直接上代码吧

注意 这里是i<=10,希望能帮到你。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-11
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>教程</title>
</head>
<body>
<script type="text/javascript">
function num() {
var arr = [];

for (var i = 0; i <=10; i++) {
arr.push(i);
console.log(arr);
console.log(arr.length);

}
}
num();
</script>

</body>
</html>

结果:

第2个回答  2018-01-11
myFirstNum只会执行一次,生成一个随机数。
在for循环中,每次会判断myFirstNum与myFirstArr中的第i个值是否相等,显然,这两个值一直是不等的。
然后将myFirstNum添加到myFirstArr中。即循环一次,就向myFirstArr中添加一个myFirstNum,所以结果才会是这样。
如果想得到期望结果,其实可以直接使用如下代码,
for(var i = 0; i <= 10; i++){
myFirstArr.push(i)
};
若还有疑问,可以追问。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网