Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中使用map获取数组值_Javascript_Arrays_Reactjs - Fatal编程技术网

在JavaScript中使用map获取数组值

在JavaScript中使用map获取数组值,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,如何使此代码返回值而不是数组?这是我的表示法,其目的是检查ID之间是否匹配,并获得匹配值的priceList数组。这可以简化,或者用.reduce()替换吗?需要额外的帮助吗 const priceList=options.map((productOption)=>{ const{data}=productOption; 返回数据.filter({option\u type\u id,price})=>{ 如果(已选择Options Array.indexOf(选项类型id)!=-1){ 退货价

如何使此代码返回值而不是数组?这是我的表示法,其目的是检查ID之间是否匹配,并获得匹配值的
priceList
数组。这可以简化,或者用
.reduce()
替换吗?需要额外的帮助吗

const priceList=options.map((productOption)=>{
const{data}=productOption;
返回数据.filter({option\u type\u id,price})=>{
如果(已选择Options Array.indexOf(选项类型id)!=-1){
退货价格;
}
返回0;
});
});
我希望这有助于: 我假设数据很少(选项和selectedOptionsArray)

价格表中也可能有重复的价格,因为多个产品可能有相同的价格。您可以通过使用Set:
let uniqueItems=[…新设置(itemsArray)]

const选项=[{
数据:[{
选项类型标识:1,
价格:100
}, {
选项类型标识:2,
售价:200
}]
}, {
数据:[{
选项类型标识:3,
价格:300
}, {
选项类型id:4,
售价:400
}]
}]
const selectedoptions数组=[1,3,4];
const priceList=options.flatMap((productOption)=>productOption.data)。reduce((累加器,currentValue)=>{
const{option_type_id,price}=currentValue;
如果(已选择Options Array.indexOf(选项类型id)!=-1){
返回[…累加器,价格];
}
回流蓄能器;
}, []);

控制台日志(价格表)
我不明白,你想做什么,但是
Array.prototype.map
总是返回一个数组。@ASDFGerte OP可能意味着他们得到嵌套数组?在这种情况下,
.map
->
.flatMap
。但是如果它是不同的,我不确定。
.filter()
的回调必须返回一个布尔值。为什么要返回任意数字?使用
map
而不是
filter
您将得到一个数字数组。