Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 JSON-将子child作为IF语句的条件_Javascript_Json - Fatal编程技术网

Javascript JSON-将子child作为IF语句的条件

Javascript JSON-将子child作为IF语句的条件,javascript,json,Javascript,Json,我有一个来自API的JSON,其中包含以下内容: "items":[ { id: *id here*, variant: { variant_name: *name here*, variant_id: *id here*, stores: { 0: store_id: *STOREID1*,

我有一个来自API的JSON,其中包含以下内容:

"items":[
     {
      id: *id here*,
      variant: {
             variant_name: *name here*,
             variant_id: *id here*,
             stores: {
                   0: 
                      store_id: *STOREID1*,
                      available_for_sale: true
                   1: 
                      store_id: *STOREID2*,
                      available_for_sale: true
     }
   }
}]
我想选择具有相同门店ID和可供销售状态的商品。我尝试过这个,但不起作用:

if(items.variant.stores.store_id === "STOREID1" && items.variant.stores.available_for_sale === 'true'){
但是它说

Uncaught TypeError: Cannot read property 'store_id' of undefined
编辑:

我试过这个:

 if(items.variants.stores.store_id["******"] && items.variants.stores.available_for_sale['true']){
但它仍然给出了相同的错误

编辑2:


编辑问题以获得更多澄清。

您的JSON文件格式不正确。我试着把它改成有效的。下次在console.log中获取对象,并使用
JSON.stringify(jsobject)
获得有效的JSON输出,而不是尝试逐字复制粘贴

还不完全清楚您是想要整个对象,还是只想要存储值。但我已经实现了两者

我使用了
Object.values
,因为您的符号看起来像对象(这会使它成为无效的JSON),但如果它们确实是数组,则不需要
Object.values

数据={
“项目”:[{
id:“*此处id*”,
变体:{
变量名称:“*此处的名称*”,
变量id:“*此处id*”,
商店:{
0: {
门店标识:“*STOREID1*”,
可供出售:真实
},
1: {
门店标识:“*STOREID2*”,
可供出售:真实
}
}
}
}]
}
//筛选并返回所有存储有问题的对象的整个对象
//使用一些来搜索至少一个匹配的存储值
console.log(
data.items.filter(item=>Object.values(item.variant.stores)(({
商店标识,
可供出售
})=>商店id=='*STOREID1*'&&U可供出售)
)
//获取存储值
//使用flatMap组合从每个stores对象返回的所有数组。
console.log(
data.items.flatMap(item=>Object.values(item.variant.stores).filter(({
商店标识,
可供出售
})=>商店id=='*STOREID1*'&&U可供出售)

)
您的JSON文件格式不正确。我试着把它改成有效的。下次在console.log中获取对象,并使用
JSON.stringify(jsobject)
获得有效的JSON输出,而不是尝试逐字复制粘贴

还不完全清楚您是想要整个对象,还是只想要存储值。但我已经实现了两者

我使用了
Object.values
,因为您的符号看起来像对象(这会使它成为无效的JSON),但如果它们确实是数组,则不需要
Object.values

数据={
“项目”:[{
id:“*此处id*”,
变体:{
变量名称:“*此处的名称*”,
变量id:“*此处id*”,
商店:{
0: {
门店标识:“*STOREID1*”,
可供出售:真实
},
1: {
门店标识:“*STOREID2*”,
可供出售:真实
}
}
}
}]
}
//筛选并返回所有存储有问题的对象的整个对象
//使用一些来搜索至少一个匹配的存储值
console.log(
data.items.filter(item=>Object.values(item.variant.stores)(({
商店标识,
可供出售
})=>商店id=='*STOREID1*'&&U可供出售)
)
//获取存储值
//使用flatMap组合从每个stores对象返回的所有数组。
console.log(
data.items.flatMap(item=>Object.values(item.variant.stores).filter(({
商店标识,
可供出售
})=>商店id=='*STOREID1*'&&U可供出售)

)
是一个数组,需要对其进行迭代并筛选所需的项

const项=[{
id:1,
变体:{
变量名称:'*此处的名称*',
变体编号:111,
门店:{store_id:1111,可供出售:true}
}
},
{
id:2,
变体:{
变体名称:“此处的名称”,
变体编号:222,
门店:{store_id:2222,可供出售:true}
}
}
];
const result=items.filter({variant:v})=>(
v、 stores.store\u id==2222&&v.stores.available\u待售
));
控制台日志(结果)

。由于控制台包装器{max height:100%!important;top:0;}
是一个数组,因此需要对其进行迭代并筛选所需的项

const项=[{
id:1,
变体:{
变量名称:'*此处的名称*',
变体编号:111,
门店:{store_id:1111,可供出售:true}
}
},
{
id:2,
变体:{
变体名称:“此处的名称”,
变体编号:222,
门店:{store_id:2222,可供出售:true}
}
}
];
const result=items.filter({variant:v})=>(
v、 stores.store\u id==2222&&v.stores.available\u待售
));
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
您是指具有特定存储id和状态的项目吗?或者只是一般的分组?请澄清问题对不起,我说的是特定的商店ID和状态。你必须在项目中迭代数组,并根据你想要的项目筛选出它们。仅检查一个值是不够的您是指具有特定门店id和状态的商品吗?或者只是一般的分组?请澄清问题对不起,我说的是特定的商店ID和状态。你必须在项目中迭代数组,并根据你想要的项目筛选出它们。仅仅检查一个值是不够的,非常感谢!如果JSON格式不正确,我很抱歉,它太长了,我不想发布它,因为它可能看起来很凌乱。非常感谢!如果JSON格式不正确,我很抱歉,它太长了,我不想发布它,因为它可能看起来很凌乱。