मैं अपना खुद का पैकेज बनाने की कोशिश कर रहा हूं और मेरे पास कोड की लाइनों को कम करने की कोशिश कर रहा हूं, नीचे दिया गया उदाहरण मैं जो कर रहा हूं उसका एक करीबी प्रतिबिंब है लेकिन मेरे पास 25 और स्विच स्टेटमेंट हैं और मुझे कोशिश की गई है कि मुझे करना है break जैसे कुछ फिर से टाइप करें (मैं इसके बारे में कुछ नहीं कर सकता) लेकिन निश्चित रूप से एक तरीका है जिससे मैं वैरिएबल को फिर से परिभाषित किए बिना एक वेरिएबल के अंदर btn.style.backgroundColor रख सकता हूं? क्योंकि यह वास्तव में मेरी बहुत मदद करेगा।

var i = 0; 
arr = ['black','red','yellow', 'green'];  
document.querySelectorAll('button').forEach(function(btn) {
 arr.forEach(function(){                
           switch(arr[i]) {
           case "black":
           btn.style.backgroundColor = 'grey';
           break;
           case "yellow":
            btn.style.backgroundColor = 'red'; 
           break; 
           case "red": 
           btn.style.backgroundColor ='yellow'; 
           break;
           case "green": 
           btn.style.backgroundColor ='lime'; 
           break; 
           default: 
           btn.style.backgroundColor ='aqua'   
       }}) 
  i++
})
<button>click me</button>
<button>click me</button>
<button>click me</button>
<button>click me</button>
<button>click me</button>
0
bethropolis 31 अक्टूबर 2020, 17:04

2 जवाब

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

ऐसा लगता है कि आप वह हासिल कर सकते हैं जो आप बहुत आसान चाहते हैं:

const arr = ['grey','yellow','red','lime'];  
[...document.querySelectorAll('button')]
  .forEach((btn,i)=>btn.style.backgroundColor = arr[i] || 'aqua')
<button>click me</button>
<button>click me</button>
<button>click me</button>
<button>click me</button>
<button>click me</button>

चूंकि आपकी "कुंजी" -अरे में मूल रंगों का कभी भी उपयोग नहीं किया गया था, इसलिए मैंने उन्हें छोड़ दिया और पृष्ठभूमि रंगों को पकड़ने के बजाय सरणी arr का उपयोग किया।

1
Carsten Massmann 31 अक्टूबर 2020, 20:19

आप बाहरी forEach का सही इस्तेमाल करते हैं, लेकिन अंदर का गलत इस्तेमाल करते हैं। आंतरिक फ़ंक्शन तर्क की जाँच करें: यह arr सरणी का तत्व है:

arr = ['black','red','yellow', 'green'];  
document.querySelectorAll('button').forEach(function(btn) {
arr.forEach(function(a){                
           switch(a) {
           case "black":
           btn.style.backgroundColor = 'grey';
           break;
           case "yellow":
            btn.style.backgroundColor = 'red'; 
           break; 
           case "red": 
           btn.style.backgroundColor ='yellow'; 
           break;
           case "green": 
           btn.style.backgroundColor ='lime'; 
           break; 
           default: 
           btn.style.backgroundColor ='aqua'   
       }}) 
})
1
Mario Vernari 31 अक्टूबर 2020, 18:34