/ / डायनामिक वेरिएबल [डुप्लीकेट] - जावास्क्रिप्ट से मूल्य प्राप्त करें

डायनामिक वैरिएबल [डुप्लिकेट] - जावास्क्रिप्ट से मूल्य प्राप्त करें

मेरे पास इस तरह के चर हैं app.figures.data[0].user.x0 , app.figures.data[0].user.y1, तथा app.figures.data[0].user.d2। ये चर मान दिए गए थे।

चर में अंतिम संख्या को बढ़ाने के क्रम के बाद इन चर की एक गतिशील संख्या है (यानी: अगले चर के बाद app.figures.data[0].user.d2 है app.figures.data[0].user.x3)।

मैं एक लूप में गतिशील रूप से प्रत्येक चर के मूल्य को प्राप्त करने के लिए एक कुशल तरीका निर्धारित करने की कोशिश कर रहा हूं।

    for(j = 0; j < len; j++){


var x = "x" + j;
j++;

var y = "y" + j;
j++;

var d = "d" + j;

var dresult = app.figures.data[0].user.d;
}

मुझे इसके मूल्य की आवश्यकता है dresult जैसा था वैसा ही है app.figures.data[0].user.d2। उदाहरण के लिए, app.figures.data[0].user.d2 है 23 इसलिए dresult होना चाहिए 23 उस यात्रा पर।

मैं जेएस के लिए नया हूं इसलिए किसी भी सुझाव की सराहना की जाती है।

उत्तर:

उत्तर № 1 के लिए 1

होगा [] आप के लिए ऑपरेटर काम?

for (let j = 2; j < len; j += 3) {
let dresult = app.figures.data[0].user["d" + j];
}

जवाब के लिए 0 № 2
var values=["x0","y1","d2"]. map(el=>this[el],app.figures.data[0].user);

यह उनके संबंधित मूल्यों की कुंजी को मैप करेगा। आप इसे एक लूप में रख सकते हैं:

for(var i=0; i<100;i+=3){
var values=["x","y","d"]. map((el,id)=>this[el+(i+id)],app.figures.data[0].user);

values.forEach(console.log);//just an example case
}

कुछ स्पष्टीकरण: मैं काउंटर है, 3 द्वारा संवर्धित, 102 पर रुकता है। एल एक सरणी तत्व है, इसलिए "y" और आईडी उस सरणी में सूचकांक है। यह उपयोगकर्ता वस्तु है। तो इस [el + (i + id)] को इस ऑब्जेक्ट की संपत्ति का मूल्य मिलता है।

वैसे गतिशील चर नाम वास्तव में खराब शैली हैं और कई कीड़े पैदा करेंगे। इसके बिना काम करने के लिए अपना कोड बदल सकते हैं।