Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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,我是JavaScript的初学者。据我所知,如果不满足if条件,将执行else条件;然而,在我的代码中,我认为这两个条件都是执行的,因为末尾有一个点,并且单词之间有空格。实际执行的是哪个条件 var result1 = createSentence(['I', 'am', 'worth', 'it']); console.log('should log "I am worth it.":', result1); function createSentence(words)

我是JavaScript的初学者。据我所知,如果不满足
if
条件,将执行
else
条件;然而,在我的代码中,我认为这两个条件都是执行的,因为末尾有一个点,并且单词之间有空格。实际执行的是哪个条件

var result1 = createSentence(['I', 'am', 'worth', 'it']);
console.log('should log "I am worth it.":', result1);

function createSentence(words) {
  var sentence = "";
  for (var i = 0; i < words.length; i++) {
    if (i === words.length - 1){
        sentence += words[i] + '.';
}   else {
        sentence += words[i] + ' '
         }
}
  return sentence
}
var result1=create句子(['I','am','worth','it']);
log('应该记录“我值得这么做。”:',result1);
功能句子(单词){
var句子=”;
for(var i=0;i
如果和else条件仅在“非此即彼”的基础上执行,则您是正确的。if和else条件不能在同一个迭代中执行,也不能在一个函数调用中执行

但是,在您共享的代码中,有一个for循环正在迭代“words”数组,这可能是您感到困惑的原因

for循环实质上调用循环中的任何内容n次,直到不满足结束条件为止。在这种情况下,只要单词数组在当前元素之后还有更多的元素就可以了

因此,如果单词数组有2个单词,for循环将调用内部if和else语句块2次:

  • 第一次,因为'i'的值将为0,小于words.length(words.length为2,因此words.length-1为1),因此将调用else条件

  • 第二次,由于i的值等于单词数组的长度-1(即1),因此满足if条件,将执行if

  • words=['Hello','world']
    var语句=“”;
    for(var i=0;i控制台日志(句子)您的代码处于循环中。它可能会对
    if
    语句进行多次评估。请提供一个如何调用function@Dai-这个条件只有一次是正确的,顺便说一句,你要做的事情可以用一条语句来完成:
    returnwords.join(“”)+“.
    @JaromandaX我怀疑OP传递的是
    字符串
    值,而不是
    字符串[]
    值-或者
    单词
    的元素已经包含点和空格。谢谢!如果这有帮助,你可能应该选择它作为答案,以便结束这个问题,这样它将在将来帮助其他人。