通过多次调用按顺序将对象插入数组
Insert objects into array sequentially over multiple calls
当新照片上传到 Instagram 时,我会将它们分组添加到我的数据库中。假设我第一次调用 Instagram API returns 数组中的 5 个照片对象,[20,21,22,23,24]
。 20
是最新的,24
是最旧的。几分钟后我的下一个电话 returns 5 个更新的照片对象,[15,16,17,18,19]
。 15
是最新的,19
是 "oldest"(但总是比 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,]
看来您需要反转原始数组。
演示:
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]
当新照片上传到 Instagram 时,我会将它们分组添加到我的数据库中。假设我第一次调用 Instagram API returns 数组中的 5 个照片对象,[20,21,22,23,24]
。 20
是最新的,24
是最旧的。几分钟后我的下一个电话 returns 5 个更新的照片对象,[15,16,17,18,19]
。 15
是最新的,19
是 "oldest"(但总是比 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,]
看来您需要反转原始数组。
演示:
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]