我有 2 个数组 1.Options 和 2.sameAccountArray
options.map((opt, optInd) => {
sameAccountArray.map((acObj, acInd) => {
if (opt.optNumber === acObj.optNumber) {
console.log(opt.optNumber, acObj.optNumber, acObj.exist, acObj.exist, 'WTF', sameAccountArray);
opt.exist = acObj.exist;
} else {
console.log(opt, acObj, opt.optNumber, acObj.optNumber, 'kundi');
// opt.exist = false;
}
// else {
// if (optInd === acInd) {
// opt.exist = acObj.exist;
// } else {
// console.log('elseeee', optInd, acInd,opt.optNumber, acObj.optNumber, opt.exist, acObj.exist);
// }
// }
});
});
sameAccountArray的数据结构:
{
'key': key,
'shares': this.no_of_shares[key],
'refValue': this.your_reference[key],
'exist': false,
'accountNumber': extractedAccountNumber, 'optNumber': parseInt(extractedOptionNumber)
}
Option里面有很大的字段,但是我们不需要关心它。 options 和 SameAccountArray 有一个名为 optNumber
的公共(public)文件。我正在尝试循环遍历每个数组,并在选项数组的每个对象中分配一个名为 exist
的值(如果 optNumber 相同)。 SameAccountArray 已经具有正确的 exist
值,我只需分配该值以匹配 options
数组的对象。不知怎的,它没有被正确分配。请注意,选项数组和 SameAccount 数组的长度不同。 SameAccountArray 具有动态对象,而 options
具有固定数量的元素。知道这里出了什么问题吗?提前致谢
最佳答案
试试这个:
options.forEach(opt=>{
sameAccountArray.forEach(acObj=>{
if (opt.optNumber === acObj.optNumber) opt.exist = acObj.exist;
})
})
关于javascript - 循环遍历 2 个数组,并将一个数组中的值分配给第二个数组的每个匹配对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494226/