我有一个对象数组的模型。这些对象有一个用户可以更新的属性。是否有一种习惯用法来计算聚合物中数组元素的子集?
在UI的另一部分中,我想展示一些有关数组的统计信息;项目的总数量和具有该属性设置的项目的数量。
一个数组代替对象的例子。点击列表项切换“一”属性:http://jsfiddle.net/rskqbquL/4/
<polymer-element name="test-cool">
<template>
<ol>
<template repeat="{{item, i in list}}">
<li on-tap="{{onTap}}" x-index="{{i}}">{{item[0]}}</li>
</template>
</ol>
<p>Total: {{list.length}}</p>
<p>A:s: {{list | countA}}</p>
</template>
<script>
Polymer("test-cool", {
list: [["a"], ["ab"], ["ac"], ["d"], ["e"]],
countA: function(list) {
var ret = 0;
list.forEach(function(item) {
if (item[0].indexOf("a") >= 0) ++ret;
});
return ret;
},
onTap: function(e, _, el) {
var item = el.innerText;
var index = parseInt(el.getAttribute("x-index"));
if (item.indexOf("a") >= 0) {
this.list[index][0] = item.slice(1);
} else {
this.list[index][0] = "a" + item;
}
// Workaround
this.list = this.list.slice();
}
});
</script>
</polymer-element>
<test-cool></test-cool>
我无法找到任何方式来观察一个数组的所有项目)的特定属性,列表中的onTap因此解决方法虚拟分配(。
什么是收集有关数组子集的统计数据的惯用聚合物方式?