为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森林海 2022-12-09 16:58:21
从这个数组中,我只想选择 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_array.filter(el => {            if(Array.isArray(el[Object.keys(el)[0]])){                return el[Object.keys(el)[0]].length;            }            else if(typeof el[Object.keys(el)[0]]==="object"){                this.brands.push(el[Object.keys(el)[0]])                return el[Object.keys(el)[0]]            }        });和https://stackoverflow.com/users/8802812/kullya 是第一个回答它的人,但我找不到他的答案,因为我是 stackoverflow 的新手,所有学分都归用户所有。非常感谢您。
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

你可以有一个如下的函数并传递你可能需要查找/过滤的数据(两者都有效:)):


var arr= [ { "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": [] } ]


function getData (commerceName){

    return arr.filter(x=>x[commerceName])

}

// using `find`

// function getData (commerceName){

//  return arr.find(x=>x[commerceName])

//} 


let res = getData('flipkart')


//let res1 = getData('snapdeal')


console.log(res)


查看完整回答
反对 回复 2022-12-09
?
函数式编程

TA贡献1807条经验 获得超9个赞

const result = json.find(a => a.hasOwnProperty('flipkart'));

const flipkartData = result ? [result.flipkart] : [];


查看完整回答
反对 回复 2022-12-09
?
DIEA

TA贡献1820条经验 获得超2个赞

您可以使用.findArray 的方法并查找其键包含“flipkart”的对象。(如果您实际上只需要对象而不是将其包装在数组中,则可以在最后一步中

省略。)[]


const

  allData = getAllData(),

  flipkart = allData.find(currentItem =>

    Object.keys(currentItem).includes("flipkart"));

console.log([flipkart]);


function getAllData(){

  return [

    {

      "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": [] }

  ];

}


查看完整回答
反对 回复 2022-12-09
  • 3 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信