在多个调用中按顺序将对象插入数组

时间:2015-02-01 19:50:08

标签: javascript arrays mongodb mongoose

我将新照片添加到我的数据库中,因为它们已上传到Instagram。假设我第一次调用Instagram API会返回数组中的5个照片对象[20,21,22,23,24]20是最新的,24是最老的。几分钟后我的下一个电话会返回5个较新的照片对象[15,16,17,18,19]15是最新的19"最老的" (但总是比20更新),然后继续。

理想情况下,我希望我的数据库将对象存储为[15,16,17,18,19,20,21,22,23,24][24,23,22,21,20,19,18,17,16,15]。但是,如果我使用push,我最终会使用[20,21,22,23,24,15,16,17,18,19],而如果我使用unshift,我最终会使用:[19,18,17,16,15,24,23,22,21,20,]

1 个答案:

答案 0 :(得分:1)

看起来您需要反转原始数组。

演示:

var x = [20, 21, 22, 23, 24];
var y = [15, 16, 17, 18, 19];
var pushed = [];
var unshifted = [];
var i;


for(i = 4; i >= 0; i--) {
    pushed.push(x[i]);
    unshifted.unshift(x[i]);
} 

for(i = 4; i >= 0; i--) {
    pushed.push(y[i]);
    unshifted.unshift(y[i]);
}

console.log(pushed); // outputs [24, 23, 22, 21, 20, 19, 18, 17, 16, 15]
console.log(unshifted); // outputs [15, 16, 17, 18, 19, 20, 21, 22, 23, 24]