HiveBrain v1.2.0
Get Started
← Back to all entries
patternjavascriptModerate

Simplify this document.referrer check

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
thisreferrersimplifydocumentcheck

Problem

Can this be simplified in any way?

if ($('.content').length && (document.referrer.search('page1.html') > 0) ||
    $('.content').length && (document.referrer.search('page2.html') > 0) ||
    $('.content').length && (document.referrer.search('page3.html') > 0) ||
    $('.content').length && (document.referrer.search('page4.html') > 0) ||
    $('.content').length && (document.referrer.search('page5.html') > 0) ||
    $('.content').length && (document.referrer.search('page6.html') > 0) ||
    $('.content').length && (document.referrer.search('page7.html') > 0) ||
    $('.content').length && (document.referrer.search('search/?') > 0)) {
        window.location.href = document.referrer;
};

Solution

Easily! You can use a regular expression to match page[1-7].html and also search/?:

if ($('.content').length && document.referrer.match(/page[1-7]\.html|search\/\?/)) {
        window.location.href = document.referrer;
};


And never write conditions in such wasteful way:

if (A && B || A && C || A && D) {


when it can be easily simplified to:

if (A && (B || C || D)) {

Code Snippets

if ($('.content').length && document.referrer.match(/page[1-7]\.html|search\/\?/)) {
        window.location.href = document.referrer;
};
if (A && B || A && C || A && D) {
if (A && (B || C || D)) {

Context

StackExchange Code Review Q#61451, answer score: 14

Revisions (0)

No revisions yet.