【发布时间】:2021-09-16 21:08:15
【问题描述】:
我有 2 个数组。我在 arr1 上使用 for 循环并检查 arr2 是否包含与 arr1 中相同的鞋码。如果条件检查到 arr2 中不存在来自 arr1 的鞋码,则它将一个对象 ({size: '-'}) 推送到 newArr,如果确实存在,它将只是将来自 arr2 的鞋对象推送到 newArr
代码:
const newArr = []
const arr1 = [
{ size: 'US 3' },
{ size: 'US 4' },
{ size: 'US 5' },
{ size: 'US 6' },
{ size: 'US 7' },
{ size: 'US 8' },
{ size: 'US 9' },
{ size: 'US 10' },
{ size: 'US 11' },
{ size: 'US 12' },
{ size: 'US 13' },
{ size: 'US 14' },
{ size: 'US 15' },
{ size: 'US 16' }
]
const arr2 = [
{ size: '4', cost: '170' },
{ size: '6', cost: '75' },
{ size: '7', cost: '75' },
{ size: '8', cost: '78' },
{ size: '9', cost: '80' },
{ size: '10', cost: '85' },
{ size: '11', cost: '73' },
{ size: '12', cost: '77' },
{ size: '14', cost: '100' }
]
for (const arr1Item in arr1) {
let arr1Size = arr1[arr1Item].size
let includes = arr1Size.includes(arr2[arr1Item].size);
if(includes) {
newArr.push(arr2[arr1Item])
} else {
newArr.push({size: '-'})
}
}
console.log(newArr)
问题是每当我运行它时,我都会收到此错误:TypeError: Cannot read properties of undefined (reading 'size')
由于这里的代码而发生此错误:
arr2[arr1Item].size
我感到困惑的是,如果我 console.log(arr2[arr1Item]) 在 for 循环中,它会从 arr2 返回每个对象而没有错误,只有在我添加 .size 时才会出错。
我在这方面被困了一段时间,如果有任何帮助,我将不胜感激。谢谢。
【问题讨论】:
标签: javascript arrays