/**
 * js 原生Array类扩展
 */

Array.prototype.add = function (item) {
  this.push(item);
}

Array.prototype.addRange = function (items) {
  var length = items.length;

  if (length != 0) {
    for (var index = 0; index < length; index++) {
      this.push(items[index]);
    }
  }
}

Array.prototype.clear = function () {
  if (this.length > 0) {
    this.splice(0, this.length);
  }
}

Array.prototype.isEmpty = function () {
  if (this.length == 0)
    return true;
  else
    return false;
}

Array.prototype.clone = function () {
  var clonedArray = [];
  var length = this.length;

  for (var index = 0; index < length; index++) {
    clonedArray[index] = this[index];
  }

  return clonedArray;
}

Array.prototype.contains = function (item) {
  var index = this.indexOf(item);
  return (index >= 0);
}

Array.prototype.dequeue = function () {
  return this.shift();
}

Array.prototype.indexOf = function (item) {
  var length = this.length;

  if (length != 0) {
    for (var index = 0; index < length; index++) {
      if (this[index] == item) {
        return index;
      }
    }
  }

  return -1;
}

Array.prototype.insert = function (index, item) {
  this.splice(index, 0, item);
}

Array.prototype.joinstr = function (str) {
  var new_arr = new Array(this.length);
  for (var i = 0; i < this.length; i++) {
    new_arr[i] = this[i] + str
  }
  return new_arr;
}

Array.prototype.queue = function (item) {
  this.push(item);
}

Array.prototype.remove = function (item) {
  var index = this.indexOf(item);

  if (index >= 0) {
    this.splice(index, 1);
  }
}

Array.prototype.removeAt = function (index) {
  this.splice(index, 1);
}
