【发布时间】:2022-07-21 17:06:28
【问题描述】:
我在 javascript 中有一个数据数组对象,看起来像这样,我们将其称为 array 1
id: 'abc-123-das-grt-123',
name: '2022/2023',
competition: {
category: [Object],
},
stages: [ [Object] ],
我还有另一个名为array 2 的数组,我想用它来过滤掉array1 并添加一个新属性。 array2 的长度为 12,与 array1 的格式相同,array1 的长度为 120。我想编写一个函数,将 array1 与 array2 循环。如果array1等于array2,则在array1中添加sports: 'badminton',并继续循环直到array2的所有元素都被array1循环了
我的功能是使用地图
const filteredResponse = array1.data.map(function(entry){
if(array1.data === array2.data){
entry.sports = "badminton"
}
})
但结果显示未定义
[
undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined,
]
代码有问题吗?有更好的方法吗?我试图避免使用 forLoops 并改用地图或其他方法。
【问题讨论】:
-
你能分享一个
array1和array2的例子吗 + 你提到了array1.data但你提供了一个不包含属性array1的data -
您每次通过循环都在比较相同的
array1.data == array2.data,您没有对迭代的当前元素做任何事情。 -
“我有一个数据”:您能否提供完整的 JavaScript 语法示例输入数据,以及预期的相应输出?在您的代码中有一个
data属性,在您分享的有关输入的小部分中不存在该属性。 -
数组通常没有命名属性(除了像
length这样的内置属性)。命名属性在对象中。你真正拥有什么? -
@Panface,请编辑您的问题并通过提供完全有效的 JavaScript 语法的示例数据来消除所有歧义。
标签: javascript arrays dictionary for-loop