2014-10-24 4 views
16

मेरे पास एक सशर्त बयान है जो दावा करता है कि अभिव्यक्ति उचित समय में हल करने के लिए बहुत जटिल थी। यदि मेरे सशर्त में 5 से अधिक कोई विवरण हैं, तो यह उस त्रुटि के साथ विफल रहता है। ऐसा कुछ ऐसा प्रतीत नहीं होता है जो संकलन पर हो रहा है, क्योंकि कथन यह सब जटिल नहीं है। क्या यह एक बग है कि किसी और ने भाग लिया है? क्या मेरी परिस्थितियों को विभाजित करने के अलावा कोई समाधान है?यदि अभिव्यक्ति के साथ असफल स्थिति बहुत जटिल है

else if(
       contains(JSONDict.keys.array, "id") && 
       contains(JSONDict.keys.array, "part_number") && 
       contains(JSONDict.keys.array, "sales_part_number") && 
       contains(JSONDict.keys.array, "include_in_search") && 
       contains(JSONDict.keys.array, "description") && 
       contains(JSONDict.keys.array, "brand") && 
       contains(JSONDict.keys.array, "product_group") && 
       contains(JSONDict.keys.array, "product_design") && 
       contains(JSONDict.keys.array, "material") && 
       contains(JSONDict.keys.array, "line") && 
       contains(JSONDict.keys.array, "unit_of_mass") && 
       contains(JSONDict.keys.array, "coating") && 
       contains(JSONDict.keys.array, "pcs_converstion") && 
       contains(JSONDict.keys.array, "appRim") && 
       contains(JSONDict.keys.array, "appSegment") && 
       contains(JSONDict.keys.array, "series") && 
       contains(JSONDict.keys.array, "product_application") 
       ){ 

      } 

उत्तर

21

हां यह एक ज्ञात मुद्दा है - this answer भी देखें।

समाधान एक चर में तार्किक व्यंजक स्टोर करने के लिए, एक बहु कथन का उपयोग है:

else { 
    var logicalExpression = contains(JSONDict.keys.array, "id") && 
      contains(JSONDict.keys.array, "part_number") && 
      contains(JSONDict.keys.array, "sales_part_number") && 
      contains(JSONDict.keys.array, "include_in_search") 
    logicalExpression = logicalExpression && contains(JSONDict.keys.array, "description") && 
      contains(JSONDict.keys.array, "brand") && 
      contains(JSONDict.keys.array, "product_group") && 
      contains(JSONDict.keys.array, "product_design") 
    // ... etc. 
    if logicalExpression { 
    } 
} 

तरह के एक शक्तिशाली भाषा के लिए एक छोटी सी अजीब है ... लेकिन यह एक (उम्मीद अस्थायी) है बंद व्यापार।

संबंधित मुद्दे