最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

for loop - SyntaxError: Unexpected token { in javascript - Stack Overflow

programmeradmin1浏览0评论

I am having an issue on my problem where the console is saying

SyntaxError: Unexpected token {

and I'm not sure where it's ing from. I am a JS newbie, just learning this stuff. Would you mind pointing out where I am going wrong with my brackets please.

var myArray = [4, 6, 23, 10, 1, 3];

var arrayAdditon = function (arr) {
    var largestNumber = arr[0];
    var sumTotal;
    for (var i = 0; i < arr.length; i += 1) {
        if (arr[i] > largestNumber) {
            largestNumber = arr[i];
        }
    }
    for (var i = 0; i < arr.length; i += 1) {
        if (largestNumber) {
            console.log(largestNumber);
        } else (arr[i] != largestNumber) {
            sumTotal += arr[i];   
        }
    }
    if (largestNumber === sumTotal) {
        return true;
    } else {
        return false;
    }
}

I am having an issue on my problem where the console is saying

SyntaxError: Unexpected token {

and I'm not sure where it's ing from. I am a JS newbie, just learning this stuff. Would you mind pointing out where I am going wrong with my brackets please.

var myArray = [4, 6, 23, 10, 1, 3];

var arrayAdditon = function (arr) {
    var largestNumber = arr[0];
    var sumTotal;
    for (var i = 0; i < arr.length; i += 1) {
        if (arr[i] > largestNumber) {
            largestNumber = arr[i];
        }
    }
    for (var i = 0; i < arr.length; i += 1) {
        if (largestNumber) {
            console.log(largestNumber);
        } else (arr[i] != largestNumber) {
            sumTotal += arr[i];   
        }
    }
    if (largestNumber === sumTotal) {
        return true;
    } else {
        return false;
    }
}
Share Improve this question edited Dec 27, 2013 at 4:59 vallentin 26.2k6 gold badges66 silver badges90 bronze badges asked Dec 27, 2013 at 4:57 jstonejstone 4453 gold badges8 silver badges19 bronze badges 5
  • 4 Check your syntax for errors here jshint. – elclanrs Commented Dec 27, 2013 at 4:58
  • Thanks for that. I am familiar with that tool, although I am not seeing where the error is. – jstone Commented Dec 27, 2013 at 5:03
  • Well, what line is the error reported? – elclanrs Commented Dec 27, 2013 at 5:04
  • 2 else takes no condition, it's just else {... – adeneo Commented Dec 27, 2013 at 5:05
  • BTW, JSHint got it: "14: Expected an assignment or function call and instead saw an expression." – elclanrs Commented Dec 27, 2013 at 5:06
Add a ment  | 

5 Answers 5

Reset to default 5

I think you have a bug in your if...else part, try changing to this.

 if (largestNumber) {
     console.log(largestNumber);
 } else if (arr[i] != largestNumber) {
     sumTotal += arr[i];   
 }

If this doesn't work ment me the full error you got. Try to inspect it in firebug console. Hope this helps you.

Your code updated here....

var myArray = [4, 6, 23, 10, 1, 3];

var arrayAdditon = function (arr) {
var largestNumber = arr[0];
var sumTotal;
for (var i = 0; i < arr.length; i += 1) {
    if (arr[i] > largestNumber) {
        largestNumber = arr[i];
    }
}
for (var j = 0; j < arr.length; j += 1) {
    if (largestNumber) {
        console.log(largestNumber);
    } else if (arr[i] != largestNumber) {
        sumTotal += arr[i];   
    }
}
if (largestNumber === sumTotal) {
    return true;
} else {
    return false;
}
 };

error in syntax else (arr[i] != largestNumber) put if there

I can not see a missing {

but

} else (arr[i] != largestNumber) {
        sumTotal += arr[i];   
}

should be

} else if (arr[i] != largestNumber) {
        sumTotal += arr[i];   
}

Here is the fixed one.

var myArray = [4, 6, 23, 10, 1, 3];

var arrayAdditon = function (arr) {
    var largestNumber = arr[0],
        sumTotal, i;

    for (i = 0; i < arr.length; i += 1) {
        if (arr[i] > largestNumber) {
            largestNumber = arr[i];
        }
    }
    for (i = 0; i < arr.length; i += 1) {
        if (largestNumber) {
            console.log(largestNumber);
        } else if(arr[i] != largestNumber) {
            sumTotal += arr[i];   
        }
    }
    if (largestNumber === sumTotal) {
        return true;
    } else {
        return false;
    }
};

arrayAdditon( myArray );

Thanks to JSHint.

发布评论

评论列表(0)

  1. 暂无评论