Javascript 使用map函数仅获取元素的属性值

Javascript 使用map函数仅获取元素的属性值,javascript,Javascript,我试图仅使用map函数获取属性值。我知道如果我使用map,那么它将返回一个元素数组。所以,这就是我要做的 我有这个数组,对象的数组 mainarray = [{ foo : '1' , id:'2' }, { foo : '2' , id:'3' },{ foo : '1' , id:'4' }]; 现在,我要做的是(数据是一些不同的数组) 我是这样做的。现在,如果它与任何内容都不匹配,那么它将返回一个包含所有未定义值的数组,因为其中有很多元素 [未定义,未定义] 但实际上我试过使用objec

我试图仅使用map函数获取属性值。我知道如果我使用map,那么它将返回一个元素数组。所以,这就是我要做的

我有这个数组,对象的数组

mainarray = [{ foo : '1' , id:'2' }, { foo : '2' , id:'3' },{ foo : '1' , id:'4' }];
现在,我要做的是(数据是一些不同的数组)

我是这样做的。现在,如果它与任何内容都不匹配,那么它将返回一个包含所有
未定义
值的数组,因为其中有很多元素

[未定义,未定义]

但实际上我试过使用
object.foo
,所以它应该只返回那个值,但不返回。所以,我被困在这里了。有人能帮我吗?

您可能想改用,如果找到匹配项,您可以使用该对象的
foo

示例

const mainarray=[
{foo:“1”,id:“2”},
{foo:“2”,id:“3”},
{foo:“1”,id:“4”}
];
const idToFind=“3”;
const obj=mainarray.find(element=>element.id==idToFind);
常量计数=(obj&&obj.foo)| |“0”;

控制台日志(计数)
我想您应该使用
过滤器
方法

let count;
if (data) {
    if ((data[0].foo) && (data[0].foo)) {
        count = this.state.mainarray.filter((object) => (object.Id === data[0].id) && (data[0].foo === object.foo)).length;
    }
}

所需的输出是什么?afaik本机
map
方法仅适用于数组。您可能需要考虑Load映射或Objist.Kys-()迭代。所需的输出仅为Foo值1。因为我正在匹配,如果id是2,那么返回键foo的值,实际上我没有得到该属性的值
let count;
if (data) {
    if ((data[0].foo) && (data[0].foo)) {
        count = this.state.mainarray.filter((object) => (object.Id === data[0].id) && (data[0].foo === object.foo)).length;
    }
}