jQuery $ .map с индексом и значением - PullRequest
0 голосов
/ 07 октября 2019

В настоящее время я сопоставляю свой файл JSON следующим образом:

var sortedData = $.map(response.data, function(data, index) {
    return [data];
});

Это отлично работает. Но ключ (индекс) отсутствует. Как я могу добавить его?

Содержимое файла JSON:

{
    "index": 5,
    "timestamp": 1570438008,
    "data": {
        "12": [
            "Title 2",
            "Description 2"
        ],
        "10": [
            "Title 1",
            "Description 1"
        ]
    }
}

После $ .map я хочу отсортировать его (атрибут данных). Я сделал это так:

sortedData.sort(function(a, b) {
    return (b[3] < a[3]) ? -1 : 1;
});

Ожидаемый результат:

"12": [
    "Title 2",
    "Description 2"
],
"10": [
    "Title 1",
    "Description 1"
]

.. и НЕ так:

"10": [
    "Title 1",
    "Description 1"
],
"12": [
    "Title 2",
    "Description 2"
]

1 Ответ

0 голосов
/ 07 октября 2019

Вы возвращаете [data], который возвращает вам значение ключа data, вместо этого вы должны возвращать только data, который будет возвращать значение всех ключей, включая индекс.

var jsonContent = {
    "index": 5,
    "timestamp": 1570438008,
    "data": {
        "12": [
            "Title 2",
            "Description 2"
        ],
        "10": [
            "Title 1",
            "Description 1"
        ]
    }
};
var sortedTicketsDesc = $.map(jsonContent, function(data, index) {
    return data;
});
console.log(sortedTicketsDesc);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...