Получение значения единственного элемента ассоциативного массива в JavaScript
В разрабатываемом приложении серверная часть предоставляла данные в JSON-формате примерно такого вида:
var json_data = {
features: {
feature1: { 4401: 'Искомое значение 1'},
feature2: { 4056: 'Искомое значение 2'},
feature3: { 1123: 'Искомое значение 3'},
...
}
};
По логике приложения нужно было перебрать все значения объекта features и получить строки отмеченные на листинге как искомые. Проблема заключалась в том, что нужная переменная является значением единственного элемента ассоциативного массива (например, feature1) с заранее неизвестным ключом (например, для feature1 значение 4401 заранее неизвестно).
Решение (оригинал решения):
for (first in features.feature1) break; alert(features.feature1[first]);
Важное замечение о работе цикла for..in: не гарантируется, что порядок перебора свойств объекта будет одинаковым для каждого запуска цикла. В этом же случае (с одним элементом в массиве), это не является ограничением.
