我正在拼接旧对象,即当新元素(对象)自动添加到数组中时,首先在数组中添加对象。
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]);
}
}
但它没有像我预期的那样工作。请任何帮助我找到这个!
答案 0 :(得分:1)
您可以使用简单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)
&#13;
答案 1 :(得分:1)
您可以使用unshift
在数组的开头添加新项目,并使用pop
删除数组中的最后一项。阅读更多here。
试试这个:
sampleArr.unshift({"id":5,"hostName":"punk"});
sampleArr.pop();
希望会有所帮助。
答案 2 :(得分:1)
我认为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)
&#13;
答案 3 :(得分:0)
试试这个:
sampleArr.splice(sampleArr.length,1,sampleArr[i]);