सभी मिलान वाली वस्तुओं को नहीं मिल रहा है, यह '{आईडी: 0, नाम:' सामान्य समूह '}' को छोड़कर सभी वस्तुओं को वापस कर रहा है, मुझे सभी मिलान वाली वस्तुएं चाहिए

 let arrDashboardIconGroups = [
      { ID:0, Name: 'General Group' },
      { ID: 1, Name: 'Patient Administration' },     
      { ID: 2, Name: 'Medical Charts' },
      { ID: 3, Name: 'Medical Procedures' },
      { ID: 13, Name: 'Purchase' },
      { ID: 14, Name: 'Sales' },
      { ID: 5, Name: 'Insurance' },
      { ID: 4, Name: 'Cash' },
      { ID: 6, Name: 'Pharmacy' },
      { ID: 7, Name: 'Inventory' },
      { ID: 8, Name: 'Lab' },
      { ID: 9, Name: 'Imaging' },
      { ID: 10, Name: 'In Patient' },
      { ID: 11, Name: 'System Administration' },
      { ID: 12, Name: 'Accounting' }
  ]  

const getMatchedobjects=()=> {

   let result = [0,1,2,3,4,]
   let matchedArray = arrDashboardIconGroups.filter(val =>result.find(
      (items)=>items == val.ID))

   console.log(matchedArray)
}

getMatchedobjects()
0
ASIF KAIF 13 जुलाई 2021, 10:04

2 जवाब

आप का मान लौटा रहे हैं

result.find((items) => items == val.ID)

पहले मामले में, लौटाया गया मान 0 है जो एक falsy मान है। इसलिए यह अंतिम फ़िल्टर परिणाम में शामिल नहीं होगा।

आप नीचे दिए गए कोड को चला सकते हैं और रिटर्निंग मान देख सकते हैं।

let arrDashboardIconGroups = [
  { ID: 0, Name: "General Group" },
  { ID: 1, Name: "Patient Administration" },
  { ID: 2, Name: "Medical Charts" },
  { ID: 3, Name: "Medical Procedures" },
  { ID: 13, Name: "Purchase" },
  { ID: 14, Name: "Sales" },
  { ID: 5, Name: "Insurance" },
  { ID: 4, Name: "Cash" },
  { ID: 6, Name: "Pharmacy" },
  { ID: 7, Name: "Inventory" },
  { ID: 8, Name: "Lab" },
  { ID: 9, Name: "Imaging" },
  { ID: 10, Name: "In Patient" },
  { ID: 11, Name: "System Administration" },
  { ID: 12, Name: "Accounting" },
];

const getMatchedobjects = () => {
  let result = [0, 1, 2, 3, 4];
  let matchedArray = arrDashboardIconGroups.filter((val) => {
    const returnResult = result.find((items) => items == val.ID);
    console.log(returnResult);
    return returnResult;
    // result.includes(val.ID)
  });

  console.log(matchedArray);
};

getMatchedobjects();

वैकल्पिक रूप से, आप शामिल का उपयोग कर सकते हैं

let arrDashboardIconGroups = [
  { ID: 0, Name: "General Group" },
  { ID: 1, Name: "Patient Administration" },
  { ID: 2, Name: "Medical Charts" },
  { ID: 3, Name: "Medical Procedures" },
  { ID: 13, Name: "Purchase" },
  { ID: 14, Name: "Sales" },
  { ID: 5, Name: "Insurance" },
  { ID: 4, Name: "Cash" },
  { ID: 6, Name: "Pharmacy" },
  { ID: 7, Name: "Inventory" },
  { ID: 8, Name: "Lab" },
  { ID: 9, Name: "Imaging" },
  { ID: 10, Name: "In Patient" },
  { ID: 11, Name: "System Administration" },
  { ID: 12, Name: "Accounting" },
];

const getMatchedobjects = () => {
  let result = [0, 1, 2, 3, 4];
  let matchedArray = arrDashboardIconGroups.filter((val) => result.includes(val.ID));

  console.log(matchedArray);
};

getMatchedobjects();
2
decpk 13 जुलाई 2021, 07:17

find() दिए गए सरणी में पहले तत्व का मान लौटाता है जो प्रदान किए गए परीक्षण फ़ंक्शन को संतुष्ट करता है। चूँकि 0 एक मिथ्या मान है, यह इसे अंतिम सरणी में शामिल नहीं करता है। MDN डॉक्स देखें

आप map result सरणी कर सकते हैं, और arrDashboardIconGroups के find फ़ंक्शन का उपयोग कर सकते हैं, और मेल खाने वाली वस्तुओं को वापस कर सकते हैं।

let arrDashboardIconGroups = [
      { ID: 0, Name: 'General Group' },
      { ID: 1, Name: 'Patient Administration' },     
      { ID: 2, Name: 'Medical Charts' },
      { ID: 3, Name: 'Medical Procedures' },
      { ID: 13, Name: 'Purchase' },
      { ID: 14, Name: 'Sales' },
      { ID: 5, Name: 'Insurance' },
      { ID: 4, Name: 'Cash' },
      { ID: 6, Name: 'Pharmacy' },
      { ID: 7, Name: 'Inventory' },
      { ID: 8, Name: 'Lab' },
      { ID: 9, Name: 'Imaging' },
      { ID: 10, Name: 'In Patient' },
      { ID: 11, Name: 'System Administration' },
      { ID: 12, Name: 'Accounting' }
  ]  

const getMatchedobjects=()=> {

   let result = [0, 1,2,3,4,99]   //99 for trial
   let matchedArray = result.map((res)=>arrDashboardIconGroups.find((val)=>val.ID == res)).filter(Boolean);

   console.log(matchedArray)
}

getMatchedobjects()
0
TechySharnav 14 जुलाई 2021, 08:29