У меня есть некоторые структурированные данные JSON, например. Предположим, что это взаимозаменяемо, через JSON.parse()
:
[
{
"title": "pineapple",
"uid": "ab982d34c98f"
},
{
"title": "carrots",
"uid": "6f12e6ba45ec"
}
]
Мне нужно, чтобы это выглядело так: переназначение title
на name
и uid
на id
с результатом:
[
{
"name": "pineapple",
"id": "ab982d34c98f"
},
{
"name": "carrots",
"id": "6f12e6ba45ec"
}
]
Самый очевидный способ сделать это:
str = '[{"title": "pineapple","uid": "ab982d34c98f"},{"title": "carrots", "uid": "6f12e6ba45ec"}]';
var arr = JSON.parse(str);
for (var i = 0; i<arr.length; i++) {
arr[i].name = arr[i].title;
arr[i].id = arr[i].uid;
delete arr[i].title;
delete arr[i].uid;
}
... или используя что-то более сложное (хотя и не более эффективное), например .
Это все прекрасно и денди, но что, если в массиве было 200 000 объектов? Это большая часть затрат на обработку.
Есть ли более эффективный способ переназначения имени ключа? Возможно, без перебора всего массива объектов? Если ваш метод более эффективен, предоставьте доказательства/ссылки.