【问题标题】:How do I segment this array according to returned key in Vue JavaScript?如何根据 Vue JavaScript 中返回的键对该数组进行分段?
【发布时间】:2019-07-06 09:37:46
【问题描述】:

我有以下包含 132 个 action_id 的数组:

[ { "id": 1, "project_id": 6, "action_1": 0, "action_2": 0, "action_3": 0, "action_4": 0, "action_5": 0, "action_6": 0, "action_7": 0, "action_8": 0 ..."action_132": 0]

这里返回:

progress() {
      return this.$store.getters['progress/getProgress']
    }

action_ id 的编号出于特定原因 - 它们都属于 Tasks,其中有 11 个。

例如:
action_1 - action_3 属于Task 1,
action_4 - action_8 属于Task 2,
action_9 - action_11 属于Task 3,等等……

如何编写一个 JavaScript 函数将动作分割成任务数组?

所以我会有类似的东西

Task1: 
  [
    action_1,
    action_2,
    action_3,
  ]`  
`Task2: 
  [
    action_4,
    action_5,
    action_6,
    action_7,
    action_8
  ]`  
`Task3: 
  [
    action_9,
    action_10,
    action_11,
  ]`...
`Task11: 
  [
    action_128,
    action_129,
    action_130,
    action_131,
    action_132
  ]

我已经知道哪个action_id's 属于哪个Task,所以在我的脑海中我想象这样的事情:

Loop through `progress` {
   if action_1 to action_3 {
     Task1.push
   }
   if action_4 to action_8 {
     Task2.push
   }
   if action_9 to action_11 {
     Task3.push
   }
}

实现这一点的正确语法是什么?

【问题讨论】:

  • 输入数组可以包含多个对象还是只有一个?当您说 '等等...' 时,不清楚模式是什么:是否可以有超过 3 个任务以及如何确定哪些操作属于哪个任务?您希望输出数组中有哪些值?您能否提供一个更详细的示例,说明您期望输出数据结构的外观?我建议更新问题,而不是试图在评论中回答我的问题。
  • 看来你的实际问题是数据结构,这就是你应该尝试解决这个问题的地方。找到一种方法来更好地构建您的数据,以便它代表您正在使用的实体。
  • 我添加了更多关于我想要实现的目标以及操作与任务之间的关系的详细信息

标签: javascript arrays vue.js


【解决方案1】:

我假设process 是任务对象{ "id": 1, "project_id": 6, "action_1": 0, "action_2": 0, "action_3": 0, ..."action_132": 0

Object.keys(process).map(key => {
    if (key.includes('action')) {
        const actionNumber = key.substring(7)     // get action number
        if (1 <= actionNumber <= 3) {
             task1.push(process[key])             // push the value of that action to task
        }
        ... for another eondition
    }

})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-25
    • 2019-07-16
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多