如何防止循环从产生相同的数组结果的重复?



我有两个数组,一个是名字列表,另一个是用函数生成的年龄列表。为了简单起见,我将只显示两个数组的最终结果。

let nameList=["John","Brenda","Sabrina","Ray","Jacob"];
let ageList=[ 23, 29, 30, 23, 25 ]

我想创建一个新的数组,我可以将每个名字与相同序列的年龄号配对。例如:John的旁边是23,Brenda是29,Sabrina是30,等等。

我写了这个函数来做

function combineData (nameArray,ageArray,combArray){
let tempComb=[];
for (let i=0;i<nameArray.length;i++) {
tempComb.push(nameArray[i]);
tempComb.push(ageArray[i]);
combArray.push(tempComb);
}
}

这个循环的结果有点像我想要得到的,但不是真的。下面是它返回的结果

[ [ 'John', 23, 'Brenda', 29, 'Sabrina', 30, 'Ray', 23, 'Jacob', 25 ],
[ 'John', 23, 'Brenda', 29, 'Sabrina', 30, 'Ray', 23, 'Jacob', 25 ],
[ 'John', 23, 'Brenda', 29, 'Sabrina', 30, 'Ray', 23, 'Jacob', 25 ],
[ 'John', 23, 'Brenda', 29, 'Sabrina', 30, 'Ray', 23, 'Jacob', 25 ],
[ 'John', 23, 'Brenda', 29, 'Sabrina', 30, 'Ray', 23, 'Jacob', 25 ] ]

谁能告诉我如何防止它复制?额外的问题。有没有办法把每个名字& &;将配对放到它们自己的数组中,然后将它与其他数组组合在一起,这样就会创建一个嵌套数组?

[['John', 23],['Brenda',29],['Sabrina',30],['Ray',23],['Jacob',25]]

您可以对名称进行map,并使用索引从ages数组中添加元素。

const nameList = [ 'John', 'Brenda', 'Sabrina', 'Ray', 'Jacob' ];
const ageList = [ 23, 29, 30, 23, 25 ];
const out = nameList.map((name, i) => {
return [name, ageList[i]];
});
console.log(out);

这是在各种下划线类库中的一行代码。函数通常称为zip。

const results = _.zip(nameList, ageList)
const nameList = ["John", "Brenda", "Sabrina", "Ray", "Jacob"];
const ageList = [23, 29, 30, 23, 25];
function zipper(arr1, arr2) {
const temp = {};
for (let i = 0; i < arr1.length; i++) {
temp[arr1[i]] = arr2[i];
}
return Object.entries(temp);
}

相关内容

  • 没有找到相关文章

最新更新