Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

How would I rewrite this without the document.write? In Jsfiddle I get this mess

ID: 3796110 • Letter: H

Question

How would I rewrite this without the document.write? In Jsfiddle I get this message that says it disallowed and can break the fiddle

document.write is disallowed in JSFiddle environment and might break your fiddle.

Executable Code

HTML Code

<!DOCTYPE html>

<title>Queue Program</title>

<script src="script.js"></script>

<body>

</body>



JScript Code

function MyQueue()
{
    var qdata = [];
    var qfront=0;
    var qrear=0;
    var qsize=20;
    this.insertvalue = function(data)
    {
        if(qrear==qsize)
            document.write("Queue full!");
        else
        {
            qdata[qrear]=data;
            qrear++;
        }
    };
    this.delete = function()
    {
        var deleteddata;
        if(qfront==qrear)
            document.write("Queue empty!");
        else
        {
            deleteddata=qdata[qfront];
            qfront++;
        }
        return deletedElement;
    };
    this.deleteByElement = function(element)
    {
        var indexvalue = qdata.indexOf(data);
        if (indexvalue > -1)
        {
            qdata.splice(indexvalue, 1);
            qrear--;
        }
        else
        {
            document.write("Data aren't found ");
        }
    }
    this.deleteByFactor = function(data)
    {
        var isdeleted=false;
        for(var j=qfront;j<qrear;j++)
        {
            if(qdata[i]%data==0)
            {
                this.deleteByElement(qdata[i]);
                isdeleted=true;
            }
        }
        return isdeleted;
    }
    this.isEmpty = function()
    {
        return qrear == 0;
    };
    this.qsize = function()
    {
        return qdata.length;
    };
    this.clear = function()
    {
        qdata = [];
    };
    this.print = function()
    {
        var myQ='';
        for(var j=qfront;j<qrear;j++)
        {
            myQ = myQ + qdata[j]+",";
        }
        return myQ;
    };
}

function createMyQueue(myQ)
{
    var newQ = new MyQueue();
    var myIter=0;
    var initVal=2;
    document.write("Iteration "+myIter+": Q1 = "+myQ.print()+" Q2 ="+newQ.print());
    while(!myQ.isEmpty())
    {
        if(myQ.deleteByFactor(initVal))
        {
            myIter++;
            newQ.insertvalue(initVal);
            document.write("Iteration "+myIter+": Q1 = "+myQ.print()+" Q2 ="+newQ.print());
        }
        initVal++;
    }    
}
var data = prompt("Enter the queue data", "");
var myQ = new MyQueue();
for(var j=2;j<=data;j++)
myQ.insertvalue(j);
createMyQueue(myQ);

Output

Sample output Iteration 0: Q1 2 3 4 5 67 8 9 10 Q2 J Iteration 1: Q1 3 5 7 9 Q2 2 Iteration 2: Q1 5 7 Q2 2 3 Iteration 3: Q1 37 Q2 2 3 5 Iteration 4: Q1 -Q2 2357

Explanation / Answer

Well if document.write is not allowed in JsFiddle and you still want to use that, then you may set up some container in HTML and keep on showing the data in that container instead of console(by using document.write).

For Example: set a <p> tag in HTML and instead of printing data using document.write, start printing the data in the <p> tag.

Following is the implementation of HTML and JS code using above idea

HTML Code

<!DOCTYPE html>
<title>Queue Program</title>
<p></p>
<script src="script.js"></script>
<body>
</body>

JAVASCRIPT CODE

function MyQueue()
{
var qdata = [];
var qfront=0;
var qrear=0;
var qsize=20;
this.insertvalue = function(data)
{
if(qrear==qsize)
document.getElementsByTagName("p")[0].innerHTML = "Queue full!";
else
{
qdata[qrear]=data;
qrear++;
}
};
this.delete = function()
{
var deleteddata;
if(qfront==qrear)
document.getElementsByTagName("p")[0].innerHTML = "Queue empty!";
else
{
deleteddata=qdata[qfront];
qfront++;
}
return deletedElement;
};
this.deleteByElement = function(element)
{
var indexvalue = qdata.indexOf(data);
if (indexvalue > -1)
{
qdata.splice(indexvalue, 1);
qrear--;
}
else
{
document.getElementsByTagName("p")[0].innerHTML = "Data aren't found ";
}
}
this.deleteByFactor = function(data)
{
var isdeleted=false;
for(var j=qfront;j<qrear;j++)
{
if(qdata[i]%data==0)
{
this.deleteByElement(qdata[i]);
isdeleted=true;
}
}
return isdeleted;
}
this.isEmpty = function()
{
return qrear == 0;
};
this.qsize = function()
{
return qdata.length;
};
this.clear = function()
{
qdata = [];
};
this.print = function()
{
var myQ='';
for(var j=qfront;j<qrear;j++)
{
myQ = myQ + qdata[j]+",";
}
return myQ;
};
}

function createMyQueue(myQ)
{
var newQ = new MyQueue();
var myIter=0;
var initVal=2;
document.getElementsByTagName("p")[0].innerHTML = "Iteration "+myIter+": Q1 = "+myQ.print()+" Q2 ="+newQ.print();
while(!myQ.isEmpty())
{
if(myQ.deleteByFactor(initVal))
{
myIter++;
newQ.insertvalue(initVal);
document.getElementsByTagName("p")[0].innerHTML ="Iteration "+myIter+": Q1 = "+myQ.print()+" Q2 ="+newQ.print();
}
initVal++;
}
}
var data = prompt("Enter the queue data", "");
var myQ = new MyQueue();
for(var j=2;j<=data;j++)
myQ.insertvalue(j);
createMyQueue(myQ);

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote