मेरे पास सरणियों का निम्नलिखित सेट है और मैं यह जांचना चाहता हूं कि कौन सी सरणी निम्नलिखित सरणियों द्वारा शर्त को पूरा करती है must_inculde, optional_include, must_not_include

  • प्रत्येक सरणी में must_inculde के अक्षर शामिल होने चाहिए।
  • सरणी में कोई भी must_not_include नहीं होना चाहिए।
  • optional_include में मान must_inculde के अतिरिक्त हो सकते हैं लेकिन वे जरूरी नहीं हैं।
    my_arr = [['a', 'c', 'd', 'b', 'e'],
              ['a', 'e'],
              ['a', 'c', 'f'],
              ['a', 'c', 'b'],
              ['a', 'b', 'd'],
              ['a', 'b', 'd', 'c']]
    
    must_inculde = ['a', 'b']
    optional_include = ['c', 'd']
    must_not_include = ['f']
1
dasdasd 24 सितंबर 2020, 00:33

2 जवाब

सबसे बढ़िया उत्तर

विकल्प दिलचस्प नहीं हैं क्योंकि जानकारी के इस टुकड़े के कारण एक सरणी कभी विफल नहीं हो सकती है: यदि इसमें वे सभी तत्व नहीं हैं तो यह ठीक है, यदि ऐसा होता है, तो यह भी ठीक है।

तो आपको केवल शामिल और शामिल नहीं की जांच करने की आवश्यकता है, और इसके लिए आप every और includes सरणी विधियों का उपयोग कर सकते हैं:

let my_arr = [['a', 'c', 'd', 'b', 'e'],
              ['a', 'e'],
              ['a', 'c', 'f'],
              ['a', 'c', 'b'],
              ['a', 'b', 'd'],
              ['a', 'b', 'd', 'c']]
    
let must_include = ['a', 'b']
let optional_include = ['c', 'd']
let must_not_include = ['f']

let result = my_arr.filter(arr => 
        must_include.every(val => arr.includes(val))
     && must_not_include.every(val => !arr.includes(val))
); 

console.log(result);
3
trincot 24 सितंबर 2020, 00:42

यह आपको "कथनों" के लिए true या false के साथ एक मिरर ऐरे देगा:

var my_arr = [['a', 'c', 'd', 'b', 'e'],
              ['a', 'e'],
              ['a', 'c', 'f'],
              ['a', 'c', 'b'],
              ['a', 'b', 'd'],
              ['a', 'b', 'd', 'c']];
var must_inculde = ['a', 'b'];
var optional_include = ['c', 'd'];
var must_not_include = ['f'];

var mirror=my_arr.map(item=>({
  must_inculde:must_inculde.reduce((acc,element)=>{acc=acc&&item.includes(element);return acc;},true),
  optional_include:item.some(element=>optional_include.includes(element)),
  must_not_include:!item.some(element=>must_not_include.includes(element))
}));

console.log(mirror);
.as-console-wrapper { max-height: 100% !important; top: 0; }
1
iAmOren 24 सितंबर 2020, 01:06