在JavaScript中添加新元素时,拼接首先在数组中添加对象

我正在拼接旧对象,即当新元素(对象)自动添加到数组中时,首先在数组中添加对象。

这是我工作的示例代码

  var sampleArr = [{"id":4,"hostName":"henry"},
                    {"id":3,"hostName":"jeff"},
                      {"id":2,"hostName":"mark"},
                        {"id":1,"hostName":"holder"}];

当添加5个对象({“id”:5,“hostName”:“punk”})时,上面的数组包含4个对象我想拼接第一个添加的对象ie({“id”:1,“hostName”:“holder “})。

这是我在控制器中尝试的

for( var i=0; i<sampleArr.length; i++){
          var index = i;
          if(sampleArr.length > 4){
            sampleArr.splice(index,1,sampleArr[i]);

        } 
        }

但它没有按我的预期工作。 请任何帮助我找出这个!


您可以使用简单的pop()来取出最后一个元素,并使用push将新元素添加到数组中!

var sampleArr = [{
  "id": 4,
  "hostName": "henry"
}, {
  "id": 3,
  "hostName": "jeff"
}, {
  "id": 2,
  "hostName": "mark"
}, {
  "id": 1,
  "hostName": "holder"
}];



sampleArr.pop()

sampleArr.push({
  "id": 5,
  "hostName": "punk"
})

console.log(sampleArr)

您可以使用unshift在数组开头添加新项目,并使用pop删除数组中的最后一个项目。 在这里阅读更多。

尝试这个:

sampleArr.unshift({"id":5,"hostName":"punk"});
sampleArr.pop();

希望会有所帮助。


我认为OP是要求FIFO(先进先出操作),因为我不明白{"id":1,"hostName":"holder"}可能是下面数组中的第一个元素。 但这是我的建议。

Array.prototype.performFIFO = function(element) { this.push(element); this.shift(); return this; } 

var sampleArr = [{"id":4,"hostName":"henry"},
                    {"id":3,"hostName":"jeff"},
                      {"id":2,"hostName":"mark"},
                        {"id":1,"hostName":"holder"}];



sampleArr.performFIFO({"id":5,"hostName":"fifth element"})

console.log(sampleArr)
链接地址: http://www.djcxy.com/p/19373.html

上一篇: splice first added object in an array when new element is added in javascript

下一篇: KnockoutJS Appending To the Beginning of observableArray