【问题标题】:How to filter and sort nested objects? ReactJS如何过滤和排序嵌套对象?反应JS
【发布时间】: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


【解决方案1】:

请更改人员变量。从“[,]”到“{,}”。

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);
console.log(sorted);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2021-02-04
    • 2019-02-11
    • 2022-12-04
    • 2020-07-28
    相关资源
    最近更新 更多