मेरे पास एक बुनियादी मल्टी सीरीज लाइन चार्ट है जिस पर मैं काम कर रहा हूं। मैं नीचे दिए गए कोड के समान कुछ हासिल करना चाहता हूं।

ये मेरे datasets[] के अंदर हैं:

            {label: 'Branch '+b7,
            data: B7,
            fill: false,
            backgroundColor: 'rgb(0, 0, 0)',
            borderColor: 'rgb(0, 0, 0)',
            },
            if(b8){
                {label: 'Branch '+b8,
                data: B8,
                fill: false,
                backgroundColor: 'rgb(0, 0, 0)',
                borderColor: 'rgb(0, 0, 0)',
                },
            }
            if(b9){
                {label: 'Branch '+b9,
                data: B9,
                fill: false,
                backgroundColor: 'rgb(0, 0, 0)',
                borderColor: 'rgb(0, 0, 0)',
                },
            }

जैसा कि आप देख सकते हैं, मैं केवल कुछ श्रृंखला बनाना चाहता हूं यदि उनका b चर मौजूद है। यह वर्तमान में datasets कोष्ठक के कारण काम नहीं करेगा।

मुझे अभी तक ऐसा कोई समाधान नहीं मिला है जो सभी संभावित b चर को शून्य पर सेट कर सके। यह मेरे लिए स्वीकार्य नहीं होगा।

1 संपादित करें

मैंने सोचा कि मैं नीचे की तरह कई datasets[] बनाने की कोशिश करूंगा। लेकिन अब मैं सशर्त बयान काम करने के लिए नहीं मिल सकता। b0 के लिए यह मुझे अनपेक्षित बता रहा है typeof

if(typeof b0 !== 'undefined'){
    datasets: [
    {label: 'Branch '+b0,
    data: B0,
    fill: false,
    backgroundColor: 'rgb(204, 0, 0)',
    borderColor: 'rgb(204, 0, 0)',
    }]
},
if(b1){
    datasets: [ 
    {label: 'Branch '+b1,
    data: B1,
    fill: false,
    backgroundColor: 'rgb(82, 235, 52)',
    borderColor: 'rgb(82, 235, 52)',
    }]
},

2 संपादित करें

मैंने if स्टेटमेंट को करने के कई तरीके आजमाए हैं। प्रत्येक प्रयास अभी तक काम नहीं किया है। मैंने if(typeof b !== 'undefined)' के साथ-साथ x को true या false के परिणाम typeof b पर सेट करने और if(x===true) का प्रयास करने का प्रयास किया है।

1
FamousAv8er 31 जुलाई 2019, 16:57

1 उत्तर

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

आप जो प्रयास कर रहे थे वह वैध जावास्क्रिप्ट सिंटैक्स नहीं था क्योंकि आप किसी ऑब्जेक्ट घोषणा के बीच में एक if स्टेटमेंट नहीं डाल सकते। इस तरह कुछ और कोशिश करें:

var datasets = [
    {
        label: 'Branch '+b7,
        data: B7,
        fill: false,
        backgroundColor: 'rgb(0, 0, 0)',
        borderColor: 'rgb(0, 0, 0)'
    }
];
if(b8) {
    datasets.push({
        label: 'Branch '+b8,
        data: B8,
        fill: false,
        backgroundColor: 'rgb(0, 0, 0)',
        borderColor: 'rgb(0, 0, 0)',
    });
}
if(b9){
    datasets.push({
        label: 'Branch '+b9,
        data: B9,
        fill: false,
        backgroundColor: 'rgb(0, 0, 0)',
        borderColor: 'rgb(0, 0, 0)',
   });
}

new Chart(document.getElementById('chart'),{
    type: 'line',
    data: {
        labels: time,
        datasets: datasets
    }
});
2
Ben McCann 31 जुलाई 2019, 19:12