// *******************************************************

// replacements for unsupported array functions (because arrayname.push(var)

// and arrayname.pop() are not implemented in IE until version 5.5)

function thearrayisgood(thearray,i) {

         if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))

             return false;

         else

             return true;

}


function getarraysize(thearray) {

// replacement for arrayname.length property

        for (i = 0; i < thearray.length; i++) {

                if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))

                        return i;

                }

        return thearray.length;

}


function arraypush(thearray,value) {

// replacement for arrayname.push(value)

        thearraysize = getarraysize(thearray);

        thearray[thearraysize] = value;

        return thearray[thearraysize];

}


function arraypop(thearray) {

// replacement for arrayname.pop()

        thearraysize = getarraysize(thearray);

        retval = thearray[thearraysize - 1];

        delete thearray[thearraysize - 1];

        thearray.length--; <<==我加了这句,很关键,否则出错

        return retval;

}


// *******************************************************


另外给出网上几个老外写的

function Array_pop() {

  var response = this[this.length - 1]

  this.length--

  return response

  }


if (typeof(Array.prototype.pop) == "undefined") {

  Array.prototype.pop = Array_pop

  }

function Array_push() {

  var A_p = 0

  for (A_p = 0; A_p < arguments.length; A_p++) {

   this[this.length] = arguments[A_p]

   }

  return this.length

  }


if (typeof Array.prototype.push == "undefined") {

  Array.prototype.push = Array_push

  }