Javascript 如何仅从以下字典中提取包含一些数据的元素?
从这个数组中,我只想选择flipkart并创建一个只包含flipkart的新数组Javascript 如何仅从以下字典中提取包含一些数据的元素?,javascript,json,dictionary,Javascript,Json,Dictionary,从这个数组中,我只想选择flipkart并创建一个只包含flipkart的新数组 json = [ { "amazon": [] }, { "flipkart": { "product_store": "Flipkart", "product_store_logo": "https://images-api.datayuge.in/im
json = [
{
"amazon": []
},
{
"flipkart": {
"product_store": "Flipkart",
"product_store_logo": "https://images-api.datayuge.in/image/ZmxpcGthcnRfc3RvcmUucG5n.png",
"product_store_url": "https://price-api.datayuge.com/redirect?id=aHR0cHM6Ly9kbC5mbGlwa2FydC5jb20vZGwvcmVhbG1lLTItZGlhbW9uZC1ibGFjay02NC1nYi9wL2l0bWY4NXNjeHlnaHh3Y2g_cGlkPU1PQkY4NVVZQ0RERlZFRE0mYWZmaWQ9YXJ1bmJhYnVs",
"product_price": "10990",
"product_mrp": "0",
"product_offer": "",
"product_color": "black",
"product_delivery": "3-4",
"product_delivery_cost": "0",
"is_emi": "1",
"is_cod": "1",
"return_time": "10 Days"
}
},
{ "snapdeal": [] },
{ "ebay": [] },
{ "paytm": [] },
{ "croma": [] },
{ "yebhi": [] },
{ "indiatimes": [] },
{ "homeshop18": [] },
{ "naaptol": [] },
{ "infibeam": [] },
{ "tatacliq": [] },
{ "shopclues": [] },
{ "paytmmall": [] },
{ "gadgets360": [] },
{ "mi": [] },
{ "2gud": [] }
];
编辑:
以上问题解决了,解决方案是
this.store\u array.filterl=>{
ifArray.isArrayel[Object.keysel[0]]{
返回el[Object.keysel[0]].length;
}
else iftypeof el[Object.keysel[0]]==对象{
this.brands.pushel[Object.keysel[0]]
返回el[Object.keysel[0]]
}
};
是第一个回答这个问题的人,但我找不到他的答案,因为我是stackoverflow的新手,所有的积分都归用户所有。非常感谢。您可以使用下面的函数,并传递可能需要查找/筛选的数据,这两种方法都有效: var arr=[{amazon:[]},{flipkart:{产品商店:Flipkart,产品商店标志:https://images-api.datayuge.in/image/ZmxpcGthcnRfc3RvcmUucG5n.png,产品商店网址:https://price-api.datayuge.com/redirect?id=aHR0cHM6Ly9kbC5mbGlwa2FydC5jb20vZGwvcmVhbG1lLTItZGlhbW9uZC1ibGFjay02NC1nYi9wL2l0bWY4NXNjeHlnaHh3Y2g_cGlkPU1PQkY4NVVZQ0RERlZFRE0mYWZmaWQ9YXJ1bmJhYnVs,产品价格:10990,p产品mrp:0,产品报价:,产品颜色:黑色,产品交货期:3-4,产品交货期成本:0,是emi:1,是cod:1,退货时间:10天,{snapdeal:[]},{ebay:[]},{paytm:[]},{croma:[]},{yebhi:[]},{indiatimes[]},{homeshop18:[]},{naaptol:[]},{infibeam:[]},{,{paytmall:[]},{gadgets360:[]},{mi:[]},{2gud:[]}] 函数getData commerceName{ 返回arr.filterx=>x[commerceName] } //使用“find”` //函数getData commerceName{ //返回arr.findx=>x[commerceName] //} 让res=getData'flipkart' //让res1=getData'snapdeal' console.logres您可以使用数组方法查找其键包含flipkart的对象。 如果实际上只需要对象,而不是将其包装在数组中,则可以在最后一步中省略[] 常数 allData=getAllData, flipkart=allData.findcurrentItem=> Object.keyscurrentItem.IncludeFlipkart; console.log[flipkart]; 函数getAllData{ 返回[ { 亚马逊:[] }, { flipkart:{ 产品商店:Flipkart, 产品\商店\标识:https://images-api.datayuge.in/image/ZmxpcGthcnRfc3RvcmUucG5n.png, 产品商店网址:https://price-api.datayuge.com/redirect?id=aHR0cHM6Ly9kbC5mbGlwa2FydC5jb20vZGwvcmVhbG1lLTItZGlhbW9uZC1ibGFjay02NC1nYi9wL2l0bWY4NXNjeHlnaHh3Y2g_cGlkPU1PQkY4NVVZQ0RERlZFRE0mYWZmaWQ9YXJ1bmJhYnVs, 产品价格:10990, 产品物料需求计划:0, 产品报价:, 产品颜色:黑色, 产品交付:3-4, 产品交付成本:0, 艾美:1, 是不是化学需氧量:1, 返回时间:10天 } }, {snapdeal:[]}, {ebay:[]}, {paytm:[]}, {croma:[]}, {yebhi:[]}, {独立时间:[]}, {家庭旅馆18:[]}, {naaptol:[]}, {infibeam:[]}, {tatacliq:[]}, {商店线索:[]}, {PaytMall:[]}, {gadgets360:[]}, {mi:[]}, {2gud:[]} ];
}您的数据不一致。数组中的所有项都包含一个包含数组的单键对象,但flipkart包含一个对象。此外,您的数据是一个数组,而不是一个普通对象字典。因此您可以使用来筛选值。我不知道如何使用stackoverflow,但有人回答了这个问题,我认为e删除了他的答案,所以我不知道如何接受他的答案。他的答案是正确的,现在问题解决了。好了,只有版主和答案的海报才能查看删除的答案。也许海报看到了你的评论并取消删除了他们的答案。如果他们不这样做,也许你可以将解决方案作为未来的答案发布广告员:欢迎光临:
const result = json.find(a => a.hasOwnProperty('flipkart'));
const flipkartData = result ? [result.flipkart] : [];