मैं अपना खुद का पैकेज बनाने की कोशिश कर रहा हूं और मेरे पास कोड की लाइनों को कम करने की कोशिश कर रहा हूं, नीचे दिया गया उदाहरण मैं जो कर रहा हूं उसका एक करीबी प्रतिबिंब है लेकिन मेरे पास 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>
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
का उपयोग किया।
आप बाहरी 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'
}})
})