array.push() 方法没有向数组添加任何内容并且工作异常
Posted
技术标签:
【中文标题】array.push() 方法没有向数组添加任何内容并且工作异常【英文标题】:array.push() method is not adding anything to array and working weirdly 【发布时间】:2020-05-31 04:31:04 【问题描述】:我是编程新手,也是 ***。
我的问题与javascript
中的array.push()
方法有关。
先看代码
var buttonColors = ["red", "blue", "green", "yellow"];
var gamePattern = [];
gamePattern = gamePattern.push(nextSequence());
function nextSequence()
var randomNumber = Math.floor( Math.random() * 4);
var randomChosenColor = buttonColors[randomNumber];
return randomChosenColor;
请检查此图片... This is chrome console output
问题在于randomNumber
正在正确生成,randomChosenColor
也正确获取颜色,但它没有被推入gamePattern
数组的行号3。如果有其他方法可以替代此方法,也请帮助我。
【问题讨论】:
push
返回插入的数字,而不是新数组。推送发生在原地。
阅读this article 了解调试代码的技巧。
您发布的代码不会在屏幕截图中创建输出。如果您在调试代码后仍需要帮助,请发帖minimal reproducible example。
【参考方案1】:
Push 改变数组的原始状态。所以你不需要重新初始化数组。
var buttonColors = ["red", "blue", "green", "yellow"];
let temp=[];
temp.push(seq());
console.log(temp);
function seq()
var randomNumber = Math.floor( Math.random() * 4);
var randomChosenColor = buttonColors[randomNumber];
return randomChosenColor;
【讨论】:
谢谢大哥,解决了我的问题。请告诉我你添加的这个“let”关键字是什么 "let" 关键字用于变量声明,它是块范围的。阅读更多。你可以参考这篇文档developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…【参考方案2】:push()
改变原始数组(并返回新的长度),因此您无需为gamePattern
分配新值。试试这样的:
var buttonColors = ["red", "blue", "green", "yellow"];
var gamePattern = [];
gamePattern.push(nextSequence());
function nextSequence()
var randomNumber = Math.floor(Math.random() * 4);
var randomChosenColor = buttonColors[randomNumber];
return randomChosenColor;
【讨论】:
以上是关于array.push() 方法没有向数组添加任何内容并且工作异常的主要内容,如果未能解决你的问题,请参考以下文章