Javascript 映射数组并查找值
我有一个数组和一个对象。在数组中我有一个产品列表,在对象中我有一个类别 我要做的是在数组中找到一个与category.code相等的代码 所以我想做一个数组的.map,但我不知道如何只返回等于category.code的值Javascript 映射数组并查找值,javascript,reactjs,Javascript,Reactjs,我有一个数组和一个对象。在数组中我有一个产品列表,在对象中我有一个类别 我要做的是在数组中找到一个与category.code相等的代码 所以我想做一个数组的.map,但我不知道如何只返回等于category.code的值 console.log("this.props.products: ", this.props.products) console.log("this.props.category: ", this.props.category) let findProducts = th
console.log("this.props.products: ", this.props.products)
console.log("this.props.category: ", this.props.category)
let findProducts = this.props.products.Products.map((product) => {
console.log("product_", product.Categories.MainCode)
product.Categories.MainCode == this.props.category.Code
})
console.log("findProducts: ", findProducts)
findProducts
返回一个未定义的列表
基本上我只想获得this.props.products.products.Categories.MainCode==this.props.category.Code
(这应该不止一个)
我该怎么办??谢谢
在这种情况下,map
不是正确的功能。相反,请使用函数,该函数将仅返回回调函数返回true的那些产品的数组
let findProducts = this.props.products.Products.filter((product) => {
return product.Categories.MainCode == this.props.category.Code;
})
在这种情况下,您需要的是
array.filter
方法,它需要一个函数来决定元素是否应该在结果数组中
让findProducts=this.props.products.products.filter((product)=>{
return product.Categories.MainCode===this.props.categority.Code
})
``
尝试使用过滤器
var arrayFiltered = this.props.products.Products.filter(item => item.Categories.MainCode == this.props.category.code);
您还需要从映射lambda返回一些内容
let findProducts = this.props.products.Products.map(product => {
console.log('product_', product.Categories.MainCode);
return product.categories.MainCode == this.props.category.Code;
});
此外,它看起来像是
.filter
的用例,而不是.map
这听起来像是以下各项的标准用法:
筛选器仅返回返回true的条目。尝试以下操作:
让findProducts=this.props.products.products.map((product)=>{
如果(product.Categories.MainCode==this.props.categority.Code)返回产品
})
给我们一个产品的示例数组,这样我们就可以测试map
函数在每次迭代中返回一个值。在代码中,当if条件为false时,将返回undefined。
let findProducts = this.props.products.Products.filter((product) => {
return product.Categories.MainCode == this.props.category.Code
})