我有两个数组。一个是想法,另一个是它的审查者。
['idea1', 'idea2', 'idea3', 'idea4', 'idea5', 'idea6', 'idea7']
['reviewer1', 'reviewer2', 'reviewer3', 'reviewer4']
我需要从上述两个数组中生成一个数据对象,并将其送入表中。我需要帮助生成对象。
[ {
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"
},
}]
一个评审人将被分配给许多想法,但对于任何想法,将只有一个评审人。
类似这样的东西。
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
是这样
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)