Предположим, у нас есть следующий объект javascript:
ahash = {"one": [1,2,3], "two": [4,5,6]}
Существует какая-нибудь функция, которая возвращает имя первого ключа в объекте?
Из примера хочу получить "один".
Предположим, у нас есть следующий объект javascript:
ahash = {"one": [1,2,3], "two": [4,5,6]}
Существует какая-нибудь функция, которая возвращает имя первого ключа в объекте?
Из примера хочу получить "один".
В Javascript вы можете сделать следующее:
Object.keys(ahash)[0];
Нет такой вещи, как "первый" ключ в хеше (Javascript называет их объектами). Они принципиально неупорядочены. Вы имеете в виду просто выбрать любой ключ:
for (var k in ahash) {
break
}
// k is a key in ahash.
Если вы решили использовать Underscore.js, вам лучше сделать
_.values(ahash)[0]
чтобы получить значение, или
_.keys(ahash)[0]
чтобы получить ключ.
Попробуйте следующее:
for (var firstKey in ahash) break;
alert(firstKey); // 'one'
С помощью Underscore.js вы можете сделать
_.find( {"one": [1,2,3], "two": [4,5,6]} )
Он вернет [1,2,3]
Вы можете запросить содержимое объекта по его позиции в массиве. Например:
let obj = {plainKey: 'plain value'};
let firstKey = Object.keys(obj)[0]; // "plainKey"
let firstValue = Object.values(obj)[0]; // "plain value"
вы можете поместить свои элементы в массив и хэш одновременно.
var value = [1,2,3];
ahash = {"one": value};
array.push(value);
Массив может использоваться для получения значений по их порядку, и хэш может использоваться для получения значений по их ключу. просто удаляйтесь и добавляйте элементы.
Я использую Lodash для защитного кодирования.
В частности, есть случаи, когда я не знаю, будут ли какие-либо свойства в объекте, для которого я пытаюсь получить ключ.
"Полностью оборонительный" подход с Lodash будет использовать оба ключа, а также получить:
const firstKey = _.get(_.keys(ahash), 0);