【发布时间】:2021-06-05 19:17:11
【问题描述】:
我有一个名为 data 的对象数组,还有一个名为 mapping 的单独对象。
我尝试从数组中删除无效对象。我已经使用 map function 迭代了数组。我使用mapping 对象检查对象是否有效。如果发现无效,则应将其从数组中删除,但 map 函数无法异步工作,因此它们会跳过无效对象,将其推入数组中,这是不好的。所以请提出一些解决方案,并告诉我为什么 map 函数跳过对象的小细节。
这是我的代码:
const data = [
{
id: 11,
name: "dashboard",
},
{
id: 13,
name: "card",
},
{
id: 1,
name: "user",
},
{
id: 4,
name: "test",
},
];
const mapping = {
1: "dashboard",
2: "user",
3: "card",
4: "test",
};
const filterData = () => {
data.map((parent, i) => {
if (Object.keys(mapping).includes(parent.id.toString())) {
} else {
const index = data.indexOf(parent);
if (index > -1) {
data.splice(index, 1);
}
}
});
console.log("updated data", data);
};
```
wrong output
[
{ id: 13, name: "card" },
{ id: 1, name: "user" },
{ id: 4, name: "test" }
];
【问题讨论】:
-
你的预期输出是什么?
-
“无效对象”是什么意思?
-
使用
map()是错误的工作工具。filter()会让这更简单
标签: javascript arrays reactjs object