jQuery - удалить последний объект по ключу - PullRequest
2 голосов
/ 26 сентября 2011

Привет, у меня есть этот объект:

object {
 key1:[.....],
 key2:[....],
 key3:[.... ]
}

Как я могу удалить последний ключ объекта (key3)?

Я хотел бы быть свободным удалить последний ключ объекта, не знаячто-нибудь об этом ключе.

Ответы [ 4 ]

3 голосов
/ 26 сентября 2011

Это ES5-совместимый способ сделать это:

obj = {a : 1, b : 2, c : 3};

var k = Object.keys(obj);
delete obj[k[k.length-1]];

или короче:

delete obj[Object.keys(obj)[Object.keys(obj).length-1]];
2 голосов
/ 26 сентября 2011

Полагаю, технически ключи не в каком-то определенном порядке, но в любом случае ...

var key;
for (key in obj);
delete obj[key];

Он перебирает весь объект, а затем удаляет то, что было последним, что было посещено.

изменить, чтобы проиллюстрировать

obj = {a : 1, b : 2, c : 3};

for (key in obj); // loops over the entire object, doing nothing *EXCEPT* 
                  // updating the `key` variable

alert(key); // "c" ... the last value of `key` was 'c'

delete obj[key];  // remove obj.c
2 голосов
/ 26 сентября 2011

Вы не можете предполагать, что последний добавленный элемент будет последним элементом, перечисленным в объекте javascript. Смотрите этот вопрос: Порядок элементов в цикле «for (… in…)»

Вкратце: используйте массив, если для вас важен порядок.

2 голосов
/ 26 сентября 2011

В Javascript нет "последнего" ключа объекта внутри объекта.Ключи объектов не упорядочены и, следовательно, не могут быть первыми или последними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...