js数组合并转换

JS数组

        "semantic_role_labeling": [  
            [  
                [  
                    "出席",10,"动作的施事",  
                    [0,3]  
                ],  
                [  
                    "出席",10,"附加的",  
                    [4,4]  
                ],  
                [  
                    "出席",10,"时间",  
                    [5,7]  
                ],  
                [  
                    "出席",10,"地点",  
                    [8,9]  
                ]  
            ]  
        ],  
        "tokens": [  
            [  
                "小学",  
                "校长",  
                "刘",  
                "阿三",  
                "将",  
                "于",  
                "3月",  
                "26日",  
                "在",  
                "中国",  
                "出席"  
            ]  
        ]

``
如何转换为

data: [
{text: '小学', role: '动作的施事'},
{text: '校长', role: '动作的施事'},
{text: '刘', role: '动作的施事'},
{text: '阿三', role: '动作的施事'},
{text: '将', role: '附加的'},
{text: '于', role: '时间'},
{text: '3月', role: '时间'},
{text: '26日', role: '时间'},
{text: '在', role: '地点'},
{text: '中国', role: '地点'},
{text: '出席', role: ''}
],
阅读 1.6k
2 个回答

拿走不谢

let data = {
  "semantic_role_labeling": [[["出席", 10, "动作的施事", [0, 3]], ["出席", 10, "附加的", [4, 4]], ["出席", 10, "时间", [5, 7]], ["出席", 10, "地点", [8, 9]]]],
  "tokens": [["小学", "校长", "刘", "阿三", "将", "于", "3月", "26日", "在", "中国", "出席"]]
}

let list = getFormattedData(data)
console.log(list)

function getFormattedData(data) {
  let resultList = [] 
  data.semantic_role_labeling.forEach((labelList, labelListIndex) => {
    labelList.forEach((item) => {
      let role = item[2] 
      let startIndex = item[3][0] 
      let endIndex = item[3][1]
      for (startIndex; startIndex <= endIndex; startIndex++) {
        resultList[startIndex] = {
          text: data.tokens[labelListIndex][startIndex],
          role
        }
      }
    })
    
    // 处理没有匹配到的tokens
    data.tokens[labelListIndex].forEach((item, index) => {
        if(!resultList[index]){
            resultList[index] = {
                text: item,
                role: ''
            }
        }
    })
  })

  return resultList
}

公安传讯警告!举个别的例子不好?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题