【发布时间】:2021-10-29 11:59:17
【问题描述】:
数据样本:
const people = [
1:{
id : 1,
name: 'James',
age: 31,
toBeDeleted: false,
position: 2
},
2:{
id : 2,
name: 'John',
age: 45,
toBeDeleted: true,
position: 3
},
3:{
id : 3,
name: 'Paul',
age: 65,
toBeDeleted: false,
position: 1
}
];
我尝试过这种方式,但它不起作用:
const sorted = Object.values(people)
.filter((people) => people.toBeDeleted !== true)
.sort((a, b) => a.position - b.position);
如果我删除 id 键,那么我的代码就可以工作。
结果必须是这样的数组:
const people = [
{
id : 3,
name: 'Paul',
age: 65,
toBeDeleted: false,
position: 1
},
{
id : 1,
name: 'James',
age: 31,
toBeDeleted: false,
position: 2
}
];
项目中使用id键来选择需要的记录,所以无法删除
【问题讨论】:
-
我不确定我是否看到任何理由将 ReactJS 标记包含在其中...看起来它都是在处理普通 JS...
-
您的数据样本看起来不像一个有效的 javascript 数组
-
您的 id 已包含在(无效,如 @WebbH 提到的)数组对象中。您可以使用
arr.find(obj => obj.id)从数组中获取对象。 -
@AlexanderNied 问题与 ReactJS 有关
-
@BrianThompson 好的。我原样退回了
标签: javascript reactjs sorting filter