Rumah  >  Soal Jawab  >  teks badan

Cari objek Json menggunakan operator "AND", "OR".

Saya menghadapi masalah di mana saya perlu mencari objek JSON menggunakan rentetan operator bersyarat.

Objek JSON kelihatan seperti

let Data = [
  {Application: 'APIM', Owner: 'Vande Mataram','Customer Code': 'DJLFKASJF',Environment: 'Dev',OS: 'Linux',Region: 'EU','TEAM ': 'DemoTestCOE'},
  {TEAM: 'BCC'},
  {Team: 'DemoTestCOE','Customer Code': 'DJLFKASJF',Owner: 'Vande Mataram',Environment: 'Prod',Region: 'EU',Application: 'Ui-Path',OS: 'Windows'},
  {Application: 'MGMT','Customer Code': 'DJLFKASJF', os: 'Windows','Owner ': 'Vande Mataram', Region: 'East US 2',Team: 'DemoTestCOE',Environment: 'MGMT'  },
  {Application: 'PIER',Owner: 'Govindarajulu Balaji',OS: 'Windows',Region: 'DemoTestCOE', Environment: 'QA'}  
]

Dan rentetan syarat seperti di bawah..

let condition =
  '"Owner": "Vande Mataram" AND ("Application": "APIM" AND "Customer Code": "DJLFKASJF") OR ("Owner": "Vande Mataram" AND "Customer Code": "DJLFKASJF") OR "Owner": "Vande Mataram"'

Tiada nasib dengan internet... Bagaimana untuk melaksanakan ini, saya tidak boleh membawanya ke SQL Server kerana ia perlu dilakukan dalam javascript.

Saya mencari dalam talian untuk membahagikan rentetan syarat kepada pembahagian tatasusunan mengikut operator (DAN/ATAU) dan mencari dalam objek data json satu demi satu, tetapi rentetan syarat adalah berbeza untuk setiap permintaan. Dan berusaha melaksanakan pengendali (DAN/ATAU) dengan betul. Saya tidak pasti ini adalah idea terbaik

Saya memerlukan bantuan bagaimana untuk menyelesaikan masalah ini untuk memenuhi apa-apa jenis syarat yang disediakan menggunakan beberapa kurungan bersarang.

Terima kasih

P粉029327711P粉029327711409 hari yang lalu594

membalas semua(1)saya akan balas

  • P粉174151913

    P粉1741519132023-09-07 00:08:39

    Data 只是一个对象数组,因此您可以使用 Array.filter

    let Data = [
      {Application: 'APIM', Owner: 'Vande Mataram','Customer Code': 'DJLFKASJF',Environment: 'Dev',OS: 'Linux',Region: 'EU','TEAM ': 'DemoTestCOE'},
      {TEAM: 'BCC'},
      {Team: 'DemoTestCOE','Customer Code': 'DJLFKASJF',Owner: 'Vande Mataram',Environment: 'Prod',Region: 'EU',Application: 'Ui-Path',OS: 'Windows'},
      {Application: 'MGMT','Customer Code': 'DJLFKASJF', os: 'Windows','Owner ': 'Vande Mataram', Region: 'East US 2',Team: 'DemoTestCOE',Environment: 'MGMT'  },
      {Application: 'PIER',Owner: 'Govindarajulu Balaji',OS: 'Windows',Region: 'DemoTestCOE', Environment: 'QA'}  
    ]
    // and the condition string like below..
    /*
    let condition =
      '"Owner": "Vande Mataram" AND ("Application": "APIM" AND "Customer Code": "DJLFKASJF") OR ("Owner": "Vande Mataram" AND "Customer Code": "DJLFKASJF") OR "Owner": "Vande Mataram"'
    */
    console.log(Data.filter(item => {
        return item.Owner === 'Vande Mataram' 
        && (item.Application === "APIM" && item['Customer Code'] === "DJLFKASJF") 
        || (item.Owner === 'Vande Mataram' && item['Customer Code'] === "DJLFKASJF")
        || item.Owner === 'Vande Mataram';
    }));

    balas
    0
  • Batalbalas