我多次见过这种模式:
<style name="Theme.YourTheme" parent="android:style/Theme">
<item name="android:actionBarStyle">@style/Theme.YourTheme.Styled.ActionBar</item>
</style>
<style name="Theme.YourTheme.Styled.ActionBar">
<item name="android:titleTextStyle">@style/Theme.Viadeo.Styled.YourTheme.TitleTextStyle</item>
</style>
<style name="Theme.YourTheme.Styled.ActionBar.TitleTextStyle" parent="@android:style/Widget.TextView">
<item name="android:textSize">12dp</item>
</style>
使用JavaScript对象的一个问题就像它们在关联数组中的地方一样,就是不可能使用方便的数组方法,如var messages = {};
function addMessage(newMessage) {
messages[newMessage.id] = newMessage;
}
function numUnread() {
var unread = 0;
for (var id in messages) {
if (messages[id]) {
unread++;
}
}
return unread;
}
,length
,filter
等。
那么,使用数组会更好吗?
map
答案 0 :(得分:1)
使用对象没有什么问题,您只需要确保您的密钥不会与Object.prototype
方法发生冲突。如果他们是数字ID,这很容易。
但是,在ES6中,您应该使用Map
。这也可以让您轻松获得尺寸。不幸的是,它还没有类似于数组的辅助方法,但它确实适用于迭代器。
const messages = new Map();
function addMessage(newMessage) {
messages.set(newMessage.id, newMessage);
}
function numUnread() {
let unread = 0;
for (let {isRead} of messages.values())
if (!isRead)
unread++;
return unread;
}