首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个数组创建嵌套对象

从多个数组创建嵌套对象
EN

Stack Overflow用户
提问于 2020-06-16 18:10:28
回答 1查看 41关注 0票数 0

我有两个数组。一个是创意,另一个是评论者。

代码语言:javascript
复制
['idea1', 'idea2', 'idea3', 'idea4', 'idea5', 'idea6', 'idea7']
['reviewer1', 'reviewer2', 'reviewer3', 'reviewer4']

我需要从上述两个数组中生成一个数据对象,以便将相同的数据提供给表。我需要帮助生成对象。

代码语言:javascript
复制
[ {
   fields: {
     "Idea": "idea1",
     "Reviewer": "reviewer1"
   }, fields: {
     "Idea": "idea2",
     "Reviewer": "reviewer2"
   }, fields: {
     "Idea": "idea3",
     "Reviewer": "reviewer3"
   },  fields: {
     "Idea": "idea4",
     "Reviewer": "reviewer4"
   },  fields: {
     "Idea": "idea5",
     "Reviewer": "reviewer1"
   },  fields: {
     "Idea": "idea6",
     "Reviewer": "reviewer2"
   },  fields: {
     "Idea": "idea7",
     "Reviewer": "reviewer3"
   }, 
}]

一个审查员将被分配到许多想法,但对于任何想法,只有一个审查员。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-16 18:28:24

就像这样:

代码语言:javascript
复制
const idea = ['idea1', 'idea2', 'idea3', 'idea4', 'idea5', 'idea6', 'idea7']
const reviewer = ['reviewer1', 'reviewer2', 'reviewer3', 'reviewer4']

let ctr =0;
const res = idea.reduce((acc, val)=>{
 ctr= ctr=== reviewer.length? 0 : ctr;
 acc = [...acc, {"fields":{
  "idea": val,
  "reviewer": reviewer[ctr++]
 }}];
  return acc
},[])

console.log(res)

一个更好和更简单的方法,您不需要变异ctr是这样

代码语言:javascript
复制
var idea = ['idea1', 'idea2', 'idea3', 'idea4', 'idea5', 'idea6', 'idea7'];
var reviewer = ['reviewer1', 'reviewer2', 'reviewer3', 'reviewer4'];

var res = idea.map((idea, i) => {
  return {
    fields: {
      idea,
      reviewer: reviewer[i % reviewer.length]
    }
  }
});

console.log(res)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62414997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档