[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ассоциативный массив
123456
Как получить первый и последний ключ в ассоциативном массиве?
Invis1ble
в javascript нет ассоциативных массивов

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

123456
ок.
Как получить первый и последний ключ из массива подобной структуры:

var arr = {
one : 1,
two : 2,
vasia : "dfsd",
petia : "iuiuuiui"
}
123456
Решил обойтись без этого и изменил логику скрипта в лучшую сторону rolleyes.gif

Но вопрос остается актуальным...
AllesKlar
Цитата (123456 @ 16.06.2015 - 20:04)
ок.
Как получить первый и последний ключ из массива подобной структуры:

var arr = {
one : 1,
two : 2,
vasia : "dfsd",
petia : "iuiuuiui"
}

Это не массив, а объект и у него нет первого и последнего элемента.
К свойствам объекта обращаться можно по их имени.

_____________
[продано копирайтерам]
123456
AllesKlar
понял
sergeiss
Цитата (123456 @ 16.06.2015 - 21:51)
Как получить первый и последний ключ в ассоциативном массиве?

Как тебе уже сказали, это объект, а не ассоциативный массив. Но, тем не менее, получить первый и последний элементы можно :)
Выполни вот такой код и ты должен будешь догадаться, что я имел ввиду:
var a={ 1: 10, 2:20, 20: 4, 'c': 'abcd'};
for( var i in a ) {
console.log( i + ': ' + a[i] );
}

Да, обращения к свойствам объекта можно так делать, "формально" как к элементам массива. Но путать их не надо, это разные вещи. Даже если все свойства будут числовыми (их ключи), то все равно это будет объект, а не массив.

Цитата (AllesKlar @ 16.06.2015 - 22:16)
объект и у него нет первого и последнего элемента

Как ни странно, есть ;)

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Invis1ble
Цитата (sergeiss @ 16.06.2015 - 21:47)
Но, тем не менее, получить первый и последний элементы можно smile.gif
...
Как ни странно, есть wink.gif

смотрим в спеку и грустно вздыхаем http://www.ecma-international.org/ecma-262/5.1/#sec-8.6
про порядок нет ни слова

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

AllesKlar
Цитата (sergeiss @ 16.06.2015 - 20:47)
Цитата (123456 @ 16.06.2015 - 21:51)
Как получить первый и последний ключ в ассоциативном массиве?

Как тебе уже сказали, это объект, а не ассоциативный массив. Но, тем не менее, получить первый и последний элементы можно :)
Выполни вот такой код и ты должен будешь догадаться, что я имел ввиду:
var a={ 1: 10, 2:20, 20: 4, 'c': 'abcd'};
for( var i in a ) {
console.log( i + ': ' + a[i] );
}

Да, обращения к свойствам объекта можно так делать, "формально" как к элементам массива. Но путать их не надо, это разные вещи. Даже если все свойства будут числовыми (их ключи), то все равно это будет объект, а не массив.

Цитата (AllesKlar @ 16.06.2015 - 22:16)
объект и у него нет первого и последнего элемента

Как ни странно, есть ;)

Я с год назад постил тут подобный вопрос, но про именно ассоциативный массив и на php
Вопрос был типа: можно ли доверять тому, что элемент n ассоциатиативного массива всегда будет отдаваться n-ым по счету, при переборе foreach
100500 тестов показали, что да.
Но документального подтверждения симу факту так и не нашли.

С яваскрипт такая же хрень.
Сегодня один браузер выдал в том же порядке, завтра они придумают более оптимально хранение данных в памяти, и случится Ж с этой логикой.

Поэтому, пусть сразу пишет правильную структуру и правильную логику обработки.

_____________
[продано копирайтерам]
volter9
123456
А не лучше ли, для этого случая, использовать массив, .pop() и .shift()?
А если по теме то:
var o = {
one : 1,
two : 2,
vasia : "dfsd",
petia : "iuiuuiui"
};

var keys = Object.keys(o);

var last = keys.pop(),
first = keys.shift();


_____________
Мой блог
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.