2017-04-13 46 views
-1

我有一个名称列表(第一个+最后一个)。我想要不匹配所有的全名和姓氏,以便在新列表和初始名称列表之间不存在全名。对象数组中的不匹配属性

Mike,Pence 
Tom,ho 
Dave, hike 
.......so on ... 

有效的输出将是:

Mike,hike 
Tom,pence 
Dave,ho 
.......so on ... 

我的数据是

 var name = [ { 
     firstN: 'Mike', 
     lastN: 'Pence', 
     fullName: 'Mike Pence' 
    }, 
    { 
     firstN: 'Tom', 
     lastN: 'Ho', 
     fullName: 'Tom Ho' 
    }, 
    { 
     firstN: 'Dave', 
     lastN: 'hike', 
     fullName: 'Dave Hike 
    } 

................等数百高达 ]

预计产量:

New List = [ { 
     firstN: 'Mike', 
     lastN: 'Hike', 
     fullName: 'Mike Hike' 
    }, 
    { 
     firstN: 'Tom', 
     lastN: 'Pence', 
     fullName: 'Tom Pence' 
    }, 
    { 
     firstN: 'Dave', 
     lastN: 'ho', 
     fullName: 'Dave Ho 
    } 
+5

你的问题本身就是一个谜! :) –

+0

所以你需要不匹配所有的名字和姓氏。没有全名应该是正确的吗? –

+0

写下修改英文列表的规则(他们不清楚你的问题)。然后,在JavaScript中实现这些规则。 – 2017-04-13 04:39:10

回答

0

你澄清,你的初始列表将不会有任何重复的第一个或最后一个名称的评论,因此,所有你需要做的是“滑动”每个人的姓了以前的人的名字,以对:

var input = [{"firstN":"Andrew","lastN":"Anderson","fullName":"Andrew Anderson"},{"firstN":"Belinda","lastN":"Brown","fullName":"Belinda Brown"},{"firstN":"Clare","lastN":"Charleston","fullName":"Clare Charleston"},{"firstN":"David","lastN":"Downer","fullName":"David Downer"},{"firstN":"Edwin","lastN":"Edwards","fullName":"Edwin Edwards"},{"firstN":"Francine","lastN":"Fellows","fullName":"Francine Fellows"},{"firstN":"Gary","lastN":"Green","fullName":"Gary Green"},{"firstN":"Harriot","lastN":"Harcourt","fullName":"Harriot Harcourt"},{"firstN":"Irwin","lastN":"Inglesson","fullName":"Irwin Inglesson"},{"firstN":"Jennifer","lastN":"Jones","fullName":"Jennifer Jones"}] 
 

 
var output = input.map(function(p, i, a) { 
 
    var next = (i + 1) % a.length 
 
    return { 
 
    firstN: p.firstN, 
 
    lastN: a[next].lastN, 
 
    fullName: p.firstN + ' ' + a[next].lastN 
 
    } 
 
}) 
 

 
console.log(output)

0

你可以做这样的事情。只需要改变混洗数组中的逻辑,因为它有时会在相同的索引处产生相同的值。

var nameList =[{firstN:'Tom',lastN:'Ho',fullName:'Tom Ho'},{firstN:'Mike',lastN:'Pence',fullName:'Mike Pence'},{firstN:'Dave',lastN:'Hike',fullName:'Dave Hike'}] 
 

 
var newNameList = []; 
 

 
var length = nameList.length; 
 
for (var a=[],i=0;i<length;++i) a[i]=i; 
 

 
function shuffle(array) { 
 
    var tmp, current, top = array.length; 
 
    if(top) while(--top) { 
 
    current = Math.floor(Math.random() * (top + 1)); 
 
    tmp = array[current]; 
 
    array[current] = array[top]; 
 
    array[top] = tmp; 
 
    } 
 
    return array; 
 
} 
 
a = shuffle(a); 
 

 
for(var i=0;i<length;i++){ 
 
    newNameList[i] = {}; 
 
    newNameList[i].firstN = nameList[i].firstN; 
 
    newNameList[i].lastN = nameList[a[i]].lastN; 
 
    newNameList[i].fullName = newNameList[i].firstN + " "+  newNameList[i].lastN; 
 
} 
 

 
console.log(newNameList)

相关问题