【问题标题】:how to store values in an array (stack or queue) using JavaScript如何使用 JavaScript 将值存储在数组(堆栈或队列)中
【发布时间】:2017-01-19 06:42:25
【问题描述】:

设备 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);
    }
}

【问题讨论】:

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

标签: javascript stack queue fifo


【解决方案1】:
  1. array.splice() 是您正在寻找的东西。用这个代替unshift & pop。阅读此处to enqueue use this & to dequeue use this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2021-03-17
    • 2012-12-12
    • 2013-12-06
    • 2016-11-25
    • 2013-09-30
    • 2020-06-12
    相关资源
    最近更新 更多