我有两个数组。一个是创意,另一个是评论者。
['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"
},
}]一个审查员将被分配到许多想法,但对于任何想法,只有一个审查员。
发布于 2020-06-16 18:28:24
就像这样:
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)
https://stackoverflow.com/questions/62414997
复制相似问题