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