我有两个数组,一个是名字列表,另一个是用函数生成的年龄列表。为了简单起见,我将只显示两个数组的最终结果。
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);
}