Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么三元运算符在最后一个索引返回未定义的引号生成器?_Javascript - Fatal编程技术网

Javascript 为什么三元运算符在最后一个索引返回未定义的引号生成器?

Javascript 为什么三元运算符在最后一个索引返回未定义的引号生成器?,javascript,Javascript,我想显示从0到引号长度的引号,但在最后一个索引三元运算符返回未定义的值后,再从0开始。我怎么能用其他方式做到呢 let quote=[“庆祝你的小胜利”,“让充满动力的人围绕你自己”,“无论你是谁,做一个好的人”,“那些想知道杯子是半空的还是满的人没有抓住要点。杯子是可以再装满的。”,“我还活着,充满动力,准备好迎接新的一天”]; var btn=document.getElementById(“btn”); var content=document.getElementById(“内容”);

我想显示从0到引号长度的引号,但在最后一个索引三元运算符返回未定义的值后,再从0开始。我怎么能用其他方式做到呢

let quote=[“庆祝你的小胜利”,“让充满动力的人围绕你自己”,“无论你是谁,做一个好的人”,“那些想知道杯子是半空的还是满的人没有抓住要点。杯子是可以再装满的。”,“我还活着,充满动力,准备好迎接新的一天”];
var btn=document.getElementById(“btn”);
var content=document.getElementById(“内容”);
var i=0;
btn.addEventListener(“单击”,函数(){
i=i
Quote将在此处显示

新报价
您试图访问报价的位置等于
Quote.length

假设您的数组只有一个引号<代码>报价。长度将返回1。只要按下按钮,就会得到
undefined
结果

var i = 0;
btn.addEventListener("click", function() {
  // quote.length == 1
  // i = 0 and is less than 1
  // ++i will return 1 (max index is 0)
  i = i < quote.length ? ++i : 0;

  content.innerHTML = quote[i];
});
var i=0;
btn.addEventListener(“单击”,函数(){
//quote.length==1
//i=0且小于1
//++i将返回1(最大索引为0)
i=i
将逻辑更新为
i=i

还有一个问题:数组中的第一个引号总是被跳过(从未显示)

要解决此问题,您需要切换两行的顺序:

let quote=[“庆祝你的小胜利”,“让充满动力的人围绕你自己”,“无论你是谁,做一个好的人”,“那些想知道杯子是半空的还是满的人没有抓住要点。杯子是可以再装满的。”,“我还活着,充满动力,准备好迎接新的一天”];
var btn=document.getElementById(“btn”);
var content=document.getElementById(“内容”);
var i=0;
btn.addEventListener(“单击”,函数(){
//显示报价单
content.innerHTML=引用[i];
//准备好下一个报价
//请注意quote.length-1。我们不能得到等于'quote.length'的值`
i=i
Quote将在此处显示

新报价
只需在
i=ii
的值即可
您应该在脚本中找到问题。
将您的逻辑更新为…
-或者将原始行放在
content.innerHTML=…
我很高兴收到stackoverflow社区的回复。我非常感谢您的帮助。这一逻辑也非常有效。i=i<4++i:0;因为数组有5个值。条件i<5为真,随增量变为6,6指数未定义。所以它返回未定义的输出。这是我的第一个代码。每个人都在构建随机报价机,所以我决定构建一个报价机,返回0到10的值。经过这次锻炼,我感到有动力和兴奋。很抱歉我的英语不好,它不是我的第一语言。谢谢again@Adnan,如果你发现一个答案对你有帮助,并且它解决了你的问题,那么你能向stack overflow社区表示的最好的感谢就是接受这个答案并有选择地投票。很高兴你自己找到了解决问题的方法!