как удалить key+value из хеша в JavaScript

Если Вы просмотрите блоки Платформы.NET и выполните развертку в базовые классы для какого-либо из стандартных объектов, Вы заметите много интерфейсов (участники, названные как ISomeName).

Интерфейсы в основном для реализации платформ, больших или маленьких. Я чувствовал то же самое по отношению к интерфейсам, пока я не хотел записать мою собственную платформу. Я также нашел, что понимание интерфейсов помогло мне изучить платформы намного более быстро. Момент, для которого Вы хотите записать более изящное решение примерно что-либо, Вы найдете, что интерфейс имеет много смысла. Это похоже на метод разрешения классу надеть соответствующую одежду для задания. Что еще более важно, интерфейсы позволяют системам становиться намного большим количеством самодокументирования, потому что сложные объекты становятся менее сложными, когда класс реализует интерфейсы, который помогает категоризировать его функциональность.

Классы реализуют интерфейсы, когда они хотят быть в состоянии участвовать в платформе явно или неявно. Например, IDisposable является единым интерфейсом, который обеспечивает сигнатуру метода для популярного, и полезные Располагают () метод. В платформе все, что Вы или другой разработчик должны знать о классе, - то, что, если это реализует IDisposable, тогда Вы знаете, что ((IDisposable) myObject).Dispose () доступно, чтобы быть названным в целях очистки.

КЛАССИЧЕСКИЙ ПРИМЕР: не реализовывая интерфейс IDisposable, Вы не можете использовать "использование ()" конструкция ключевого слова в C#, потому что это требует, чтобы любой объект, указанный в качестве параметра, мог быть неявно брошен к IDisposable.

СЛОЖНЫЙ ПРИМЕР: более сложным примером была бы Система. ComponentModel. Класс компонента. Этот класс реализует и IDisposable и IComponent. Большинство, если не все, объекты.NET, которым связали визуального разработчика с ними, реализуют IComponent так, чтобы IDE был в состоянии взаимодействовать с компонентом.

ЗАКЛЮЧЕНИЕ: Поскольку Вы становитесь более знакомыми с Платформой.NET, первая вещь, которую Вы сделаете при обнаружении с новым классом в Обозревателе объектов или в Отражателе.NET, который (свободный) инструмент ( http://www.red-gate.com/products/reflector/ ) должен проверить для наблюдения, какой класс, который это наследовало от и также интерфейсы, которые это реализует. Отражатель.NET еще лучше, чем Обозреватель объектов, потому что это позволяет Вам видеть Производные классы также. Это позволяет Вам узнавать обо всех объектах, которые происходят из конкретного класса, таким образом, потенциально узнавая о функциональности платформы, которую Вы не знали, существовал. Это особенно значительно, когда обновлено, или новые пространства имен добавляются к Платформе.NET.

74
задан PGSystemTester 30 May 2018 в 18:05
поделиться

4 ответа

Вы ищете delete :

delete myhash['key2']

См. Руководство по основному Javascript

174
ответ дан 24 November 2019 в 11:51
поделиться

Почему вы используете new Array (); для хеширования? Вместо этого вам нужно использовать new Object () .

И я думаю, вы получите то, что хотите.

11
ответ дан 24 November 2019 в 11:51
поделиться

Вы говорите, что не обязательно знаете, что 'key2' находится в позиции [1]. Ну это не так. Позиция 1 будет занята myHash [1].

Вы злоупотребляете массивами JavaScript, которые (как и функции) допускают хеширование ключей / значений. Несмотря на то, что JavaScript позволяет это, он не дает вам возможности справиться с этим, как это сделал бы язык, разработанный для ассоциативных массивов. Методы массивов в JavaScript работают только с пронумерованными свойствами.

Первое, что вам следует сделать, это переключиться на объекты, а не на массивы. У вас нет веских причин использовать здесь массив, а не объект, поэтому не делайте этого. Если вы хотите использовать массив, просто пронумеруйте элементы и откажитесь от идеи хешей. Назначение массива - хранить информацию, которую можно индексировать численно.

Вы, конечно, можете поместите хэш (объект) в массив, если хотите.

myhash[1]={"key1","brightOrangeMonkey"};
6
ответ дан 24 November 2019 в 11:51
поделиться

Другой вариант - это метод удаления Джона Ресига . может лучше соответствовать тому, что вам нужно. если вы знаете индекс в массиве.

1
ответ дан 24 November 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: