如何在链接筛选和映射方法时获取筛选的索引
How to get the filtered index when chaining filtering and map methods
假设我们有一个包含x个数量条目的对象数组。
例如,条目是
{
name: 'someone',
age: 22,
modified: true
}
现在我们要过滤条目,以便我们可以通过使用过滤器方法获取包含 modified = true 的所有条目。过滤后,我们将结果映射到div。
例如:
return this.props.entries.filter((entry) => {
return entry.modified === true;
}).map((displayedEntry, index) => {
return (
<tr>
<td>{index + 1}</td>
<td>displayedEntry.name</td>
</tr>
);
});
问题是显示的索引对应于过滤的条目数量:如果修改了 4 个项目,我们将是 index = [0,1,2,3]。
我的问题是我们如何传递原始数组中项目的索引,而不是映射数组中项目的索引。
因此,如果索引:5,10 中的项目被修改,我可以在映射结果时传递这些索引吗?
我希望我解释清楚这一点。
如果您不想破坏原始对象,请使用投影:
return this.props.entries
.map((entry, index) => {
return {
entry: entry,
index: index
};
})
.filter((proj) => {return proj.entry.modified === true;})
.map(proj => {
return (
<tr>
<td>{proj.index + 1}</td>
<td>proj.entry.name</td>
</tr>
);
});
这有点丑,但你可以做这样的事情:
return this.props.entries.
map((entry, index) => {
entry.displayIndex = index;
return entry;
}).
filter((entry) => {
return entry.modified === true;
}).
map((displayedEntry, index) => {
return (
<tr>
<td>{displayedEntry.displayIndex + 1}</td>
<td>displayedEntry.name</td>
</tr>
);
});
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何基于多个属性筛选记录并获取计数
- JQuery获取最接近的元素并筛选子元素
- 获取当前URL未获取ID,基于类的筛选器
- 如何获取输入字段的值并使用它来筛选数组
- 如何从交叉筛选器实例中获取维度列表
- 如何在链接筛选和映射方法时获取筛选的索引
- 角度出厂筛选器 - 无法获取传递到筛选器的数据
- 如何在javascript中筛选日期以仅获取最近4个月的日期
- 获取Category筛选器控件的类型
- 在筛选器上获取所需的堆栈对象
- 如何从分页ui网格中获取筛选的数据
- 如何获取字符串数组并对其进行筛选
- “筛选”JSON以获取唯一键并获取所有相关值
- 获取筛选值的对象键
- 无法获取网格存储筛选器
- 如何获取已筛选的行数
- 如何获取类的值并对其进行筛选
- JQuery AJax获取页面碎片查找与筛选