如何使用JavaScript在数组(堆栈或队列)中存储值

如何使用JavaScript在数组(堆栈或队列)中存储值,javascript,stack,queue,fifo,Javascript,Stack,Queue,Fifo,设备1详细信息: { "positions": [{ "address": "1326 13 Cross Rd, Bengaluru, KA, IN", "protocol": "osmand", "fixTime": "2017-01-19T11:58:40.000+05:30", "deviceTime": "2017-01-19T11:58:40.000+05:30", "latitude": 12.9

设备1详细信息:

{
    "positions": [{
        "address": "1326 13 Cross Rd, Bengaluru, KA, IN",
        "protocol": "osmand",
        "fixTime": "2017-01-19T11:58:40.000+05:30",
        "deviceTime": "2017-01-19T11:58:40.000+05:30",
        "latitude": 12.9750062,
        "longitude": 77.63568398,
        "valid": true,
        "speed": 0.0,
        "outdated": false,
        "altitude": 808.0,
        "course": 0.0,
        "deviceId": 2,
        "id": 545,
        "attributes": {
            "battery": "62.0",
            "ip": "192.168.0.107",
            "distance": 0.13,
            "totalDistance": 3307.1
        }
    }]
}
设备2详细信息:

{
    "positions": [{
            "address": "1326 13 Cross Rd, Bengaluru, KA, IN",
            "protocol": "osmand",
            "fixTime": "2017-01-18T17:38:29.000+05:30",
            "deviceTime": "2017-01-18T17:38:29.000+05:30",
            "latitude": 12.9750375,
            "longitude": 77.6356692,
            "serverTime": "2017-01-18T17:38:31.000+05:30",
            "valid": true,
            "speed": 0.0,
            "outdated": false,
            "altitude": 0.0,
            "course": 0.0,
            "deviceId": 1,
            "id": 262,
            "attributes": {
                "battery": "55.0",
                "ip": "192.168.0.108",
                "distance": 0.0,
                "totalDistance": 26.96
            }
        }
我需要同时将这些设备的位置存储在单独的堆栈中,并根据设备获取

function updateMapLive(positions) {
    for (i = 0; i < positions.length; i++) {
        console.log(positions[i].longitude + "," + positions[i].latitude);

        var latlong = positions[i].longitude + "," + positions[i].latitude;
        var deviceid = positions[i].deviceId;
        var Q = new Queue();

        Q.enqueue(latlong);
        arr.push(latlong);

        console.log(deviceid);
    }
}

function Queue() {
    this.stac = new Array();

    this.dequeue = function () {
        return this.stac.pop();
    }

    this.enqueue = function (item) {
        this.stac.unshift(item);
    }
}
函数更新应用程序(位置){
对于(i=0;i
  • array.splice()
    就是您要找的东西。使用此选项而不是
    unshift
    &
    pop
    。阅读这里&

  • 问题是什么?当我试图存储数据时,只有最终值被存储在队列中。但我需要最后10个值。我还需要分别存储两个设备的值