Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重新创建数组方法?_Javascript_Arrays_Methods - Fatal编程技术网

Javascript 如何重新创建数组方法?

Javascript 如何重新创建数组方法?,javascript,arrays,methods,Javascript,Arrays,Methods,我试图对数组方法push、pull、shift、unshift进行反向工程,但我似乎不知道如何a)构造它b)调用它。我怎么能这样做?以下是条件: 返回一个空数组对象。此对象应具有 以下方法:push(val)将val添加到数组的末尾 pop()从结束处删除一个值,并返回它unshift(val)adds 数组开头的val shift()从数组中删除一个值 开始并返回此问题的目标是反转 设计数组方法实际执行的操作并返回一个对象 那就是那些方法 这是我最初认为它应该是什么样子 function cr

我试图对数组方法push、pull、shift、unshift进行反向工程,但我似乎不知道如何a)构造它b)调用它。我怎么能这样做?以下是条件:

返回一个空数组对象。此对象应具有 以下方法:push(val)将val添加到数组的末尾 pop()从结束处删除一个值,并返回它unshift(val)adds 数组开头的val shift()从数组中删除一个值 开始并返回此问题的目标是反转 设计数组方法实际执行的操作并返回一个对象 那就是那些方法

这是我最初认为它应该是什么样子

function createArray() {
    //CODE HERE

  this.push = function Push(value){
                if(index >= 0){
                 Mainarray[index++]=value;}
               };

   this.pop = function (){
                if(index >= 0){
                  index--;
                 return Mainarray[index];
                }
                else{
                  // display message of Empty Array
                  console.log('Error: Item is not array');
                }
              };

   this.unshift = function(){return ;};
}

您可以使用原型-如下所示:

function YourArray() {
  this.arr = [];
  this.index = 0;
}

YourArray.prototype.push = function( value ) {
  this.arr[ this.index++ ] = value;
  return this;
}

var arr = new YourArray();

arr.push('foo');

您可以使用原型-如下所示:

function YourArray() {
  this.arr = [];
  this.index = 0;
}

YourArray.prototype.push = function( value ) {
  this.arr[ this.index++ ] = value;
  return this;
}

var arr = new YourArray();

arr.push('foo');


您可以通过在同一数组的长度位置为数组指定一个值来重新创建推送方法

这是推送的原型:

Array.prototype.push = function(element) {
    this[this.length] = element;
};
这是针对pop方法的:

Array.prototype.pop = function() {
    var key = this.stack.pop();
    var prop = this.object[key];
    delete this.object[key];
    return prop;
};
您可以通过更改原型名称来创建自己的方法。 按我的按钮

推送函数createArray的示例:

this.push = function pushValue(value) {
    this.arr[this.arr.length] = value;
};

通过在同一数组的长度位置为数组指定一个值,可以重新创建push方法

这是推送的原型:

Array.prototype.push = function(element) {
    this[this.length] = element;
};
这是针对pop方法的:

Array.prototype.pop = function() {
    var key = this.stack.pop();
    var prop = this.object[key];
    delete this.object[key];
    return prop;
};
您可以通过更改原型名称来创建自己的方法。 按我的按钮

推送函数createArray的示例:

this.push = function pushValue(value) {
    this.arr[this.arr.length] = value;
};

我使用本机数组方法作为分配给返回对象中键的值。诀窍是在对象内部声明一个数组并将其用作引用。它应该通过你要找的检查

function createArray() {
    //CODE HERE
    return {
       arr: [],
       push: function (val) {this.arr.push(val)},
       pop: function() {return this.arr.pop()},
       unshift: function (val) {return this.arr.unshift(val)},
       shift: function() {return this.arr.shift()}
    }
}

我使用本机数组方法作为分配给返回对象中键的值。诀窍是在对象内部声明一个数组并将其用作引用。它应该通过你要找的检查

function createArray() {
    //CODE HERE
    return {
       arr: [],
       push: function (val) {this.arr.push(val)},
       pop: function() {return this.arr.pop()},
       unshift: function (val) {return this.arr.unshift(val)},
       shift: function() {return this.arr.shift()}
    }
}