js 数组转换问题

新手上路,请多包涵

`

let arr1= [

{role:["O","O","O","B-V","O","O","O","O","O","O","O","O","O"],
text:["Two","of","them","were","being","run","by","2","officials","of","the","Ministry","."]},

{role:["B-ARG1","I-ARG1","I-ARG1","O","O","B-V","B-ARG0","I-ARG0","I-ARG0","I-ARG0","I-ARG0","I-ARG0","O"],
text:["Two","of","them","were","being","run","by","2","officials","of","the","Ministry","."]}
]

如何转变为

let arr2= 

[{'role':'O','text':'Two'} ,{'role':'O','text':'of'},{'role':'O','text':'them'},{'role':'B-V','text':'were'},
{'role':'O','text':'being'} ,{'role':'O','text':'run'},{'role':'O','text':'by'},{'role':'O','text':'2'},
{'role':'O','text':'officials'} ,{'role':'O','text':'of'},{'role':'O','text':'the'},{'role':'O','text':'Ministry'},
{'role':'O','text':'.'}
],

[{'role':'B-ARG1','text':'Two'} ,{'role':'I-ARG1','text':'of'},{'role':'O','text':'them'},{'role':'B-V','text':'were'},
{'role':'B-V','text':'being'} ,{'role':'B-ARG0','text':'run'},{'role':'I-ARG0','text':'by'},{'role':'I-ARG0','text':'2'},
{'role':'I-ARG0','text':'officials'} ,{'role':'I-ARG0','text':'of'},{'role':'I-ARG0','text':'the'},{'role':'I-ARG0','text':'Ministry'},
{'role':'O','text':'.'}
]
]
阅读 1.5k
2 个回答
const arr2 = arr1.map(
  m => m.role.map((role, index) => {
    return {
      role,
      text: m.text[index]
    }
  })
)
function handleArray(source) {
  let result = undefined
  let list = []
  for (let item of source) {
    result = item['role'].reduce((sum, arrItem, arrIndex) => {
      let currItem = {
        role: arrItem,
        text: item['text'][arrIndex]
      }
      sum.push(currItem)
      return sum
    }, [])
  }
  list.push(result)
  return list
}

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