Javascript 如何仅从以下字典中提取包含一些数据的元素?

Javascript 如何仅从以下字典中提取包含一些数据的元素?,javascript,json,dictionary,Javascript,Json,Dictionary,从这个数组中,我只想选择flipkart并创建一个只包含flipkart的新数组 json = [ { "amazon": [] }, { "flipkart": { "product_store": "Flipkart", "product_store_logo": "https://images-api.datayuge.in/im

从这个数组中,我只想选择flipkart并创建一个只包含flipkart的新数组

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] : [];