Нет, порядок свойств объектов не гарантируется в JavaScript; вам нужно использовать массив
.
Определение объекта из ECMAScript Third Edition (pdf) :
4.3.3 Объект
Объект является членом типа Object. Это неупорядоченный набор свойств, каждый из которых содержит примитивное значение, объект или функцию. Функция, хранящаяся в свойстве объекта, называется методом.
Поскольку ECMAScript 2015, используя , объект Map может быть альтернативой. A
Map
разделяет некоторые сходства с объектамиObject
и гарантирует порядок клавиш :Карта выполняет итерацию своих элементов в порядке ввода, тогда как порядок итерации не задан для объектов.
Я все еще пытаюсь понять, почему он не находит и не разделяет теги:
blockquote><!-- //-->
. Эти обратные косы вызывают упущение некоторых тегов.Это может быть проблемой с базовым синтаксическим анализатором SGML: см. http://www.crummy.com/software/BeautifulSoup/documentation .html # Дезинфекция% 20Bad% 20Data% 20with% 20Regexps . Вы можете переопределить его, используя регулярное выражение
markupMassage
- прямо из документов:import re, copy myMassage = [(re.compile('<!-([^-])'), lambda match: '<!--' + match.group(1))] myNewMassage = copy.copy(BeautifulSoup.MARKUP_MASSAGE) myNewMassage.extend(myMassage) BeautifulSoup(badString, markupMassage=myNewMassage) # Foo<!--This comment is malformed.-->Bar<br />Baz
Прямо из документации для BeautifulSoup , вы можете легко скрыть комментарии (или что угодно) с помощью extract()
:
from BeautifulSoup import BeautifulSoup, Comment
soup = BeautifulSoup("""1<!--The loneliest number-->
<a>2<!--Can be as bad as one--><b>3""")
comments = soup.findAll(text=lambda text:isinstance(text, Comment))
[comment.extract() for comment in comments]
print soup
# 1
# <a>2<b>3</b></a>
map( lambda x: x.extract(), comments )
?
– Katriel
17 August 2010 в 23:23
<!-- //-->
. Эти обратные косые черты вызывают упущение некоторых тегов
– Nathan
17 August 2010 в 23:26
<!-- //-->
.
– Kiran Jonnalagadda
9 March 2011 в 10:42
sgmllib
. Это некрасиво, но это тоже не Лавкрафт. – Katriel 18 August 2010 в 09:37