【问题标题】:Filter object data and split it into several objects in react native过滤对象数据并在 react native 中将其拆分为多个对象
【发布时间】:2021-04-26 15:35:15
【问题描述】:

我想操作 JSON 输入数据并将其输出到不同的对象中, 例如下面的数据将作为输入:

   const data= [{"code": "500", "dayTime": "On MON 11AM - 13PM", "group_id":"012021106667", "location": "A0716", "scanningTime": "2021-01-22T06:10:40.000Z", "subjectName": "PROGRAMMING"},
    {"code": "1303", "dayTime": "On FRI 9AM - 11AM", "group_id": "01202110666", "location": "A0715", "scanningTime": "2021-01-22T06:37:11.000Z","subjectName": "DISTRIBUTED SYSTEM"},
    {"code": "503", "dayTime": "On MON 11AM - 13PM", "group_id":"012021106667", "location": "A0716", "scanningTime": "2021-01-22T06:10:40.000Z", "subjectName": "CLIENT SERVER"}]

正如您在对象中看到的那样,我有三个主题名称,每个主题都有唯一的代码。我想将每个代码数据放入新对象中,换句话说,基于数据我应该有三个对象,每个对象都有与代码相关的主题数据。 预期结果应如下所示:

  const data1=  [{"code": "500", "dayTime": "On MON 11AM - 13PM", "group_id":"012021106667", "location": "A0716", "scanningTime": "2021-01-22T06:10:40.000Z", "subjectName": "PROGRAMMING"}]

 const data2=   [{"code": "1303", "dayTime": "On FRI 9AM - 11AM", "group_id": "01202110666", "location": "A0715", "scanningTime": "2021-01-22T06:37:11.000Z","subjectName": "DISTRIBUTED SYSTEM"}]

   const data3=   [{"code": "503", "dayTime": "On MON 11AM - 13PM", "group_id":"012021106667", "location": "A0716", "scanningTime": "2021-01-22T06:10:40.000Z", "subjectName": "CLIENT SERVER"}]

我使用forEach将数据分配给新对象,但是如何根据“代码”项进行分配,并使其像循环使用不同代码的每个数据将其分配给新对象

提前致谢

【问题讨论】:

  • 1.比文字更好,您应该根据数据(预期的 json)发布预期的输出 2. 说明您正在使用 fetchApi 或 react 无关紧要,您可以操纵 json 输入
  • 但是输出只是三个数组,你的push是什么?你的意思是{500: {code: 500, dayTime,...}, 1303: {code: 1303, ...}, 503:{...}},其中输出是一个 object,其 keys 是代码,其中值是与代码关联的对象?
  • @grodzi 不,输出是数组内的三个对象,但输出我想要三个对象,所以我可以将每个对象存储在内部变量中,但是如果你提到的方式可以实现我正在寻找的因为你不能给我一个例子
  • 它看起来微不足道,所以也许我还没有理解。你不能只做const a = codes[0]; const b=codes[1]; const c=codes[2]给定的代码是你的输入数组吗? (简写为const [a,b,c] = codes
  • @grodzi 输入将是一个 json 数据,输出将根据唯一代码分开三个。所以输入将在过滤后保存数据的变量上,我将得到三个变量。我已经更新了问题,请检查一下

标签: node.js json react-native object fetch-api


【解决方案1】:

我想这就是你想要的?

const data= [{"code": "500", "dayTime": "On MON 11AM - 13PM", "group_id":"012021106667", "location": "A0716", "scanningTime": "2021-01-22T06:10:40.000Z", "subjectName": "PROGRAMMING"},
    {"code": "1303", "dayTime": "On FRI 9AM - 11AM", "group_id": "01202110666", "location": "A0715", "scanningTime": "2021-01-22T06:37:11.000Z","subjectName": "DISTRIBUTED SYSTEM"},
    {"code": "503", "dayTime": "On MON 11AM - 13PM", "group_id":"012021106667", "location": "A0716", "scanningTime": "2021-01-22T06:10:40.000Z", "subjectName": "CLIENT SERVER"}]
const code500 = []
const code1303 = []
const code503 = []

data.forEach((arr) => {
  switch (arr.code) {
    case '500': {
      code500.push(arr)
      break
    }
    case '1303': {
      code1303.push(arr)
      break
    }
    case '503': {
      code503.push(arr)
      break
    }
    default: {
      throw new Error(`Unrecognised code '${arr.code}'`)
    }
  }
})

【讨论】:

  • 那是完美的,但是当我有两个具有相同代码的数据时,会将它们一起打印在同一个数组中,就像在一个 const data1 中一样,或者分开,如果没有,我怎么能做到这一点
  • 不用担心,很高兴它有帮助!
猜你喜欢
  • 1970-01-01
  • 2021-12-12
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 2022-01-22
  • 2018-12-18
相关资源
最近更新 更多