image of data coming in from API

नमस्ते, मैं चार्ट.जेएस के साथ एक क्रिप्टो ट्रैकर ऐप बनाने की कोशिश कर रहा हूं।

मेरे पास 2 घंटे का मूल्य डेटा एक सरणी में 120 वस्तुओं के रूप में आ रहा है। मैं चार्ट के अक्ष के रूप में सरणी में प्रत्येक ऑब्जेक्ट से 'उच्च' और 'समय' गुणों का उपयोग करना चाहता हूं।

मैं इन्हें कैसे ले सकता हूँ और इन्हें चार्ट में सम्मिलित करूँगा। JS के डेटा अनुभाग को लेबल और डेटासेट डेटा के रूप में? क्या मुझे कुछ चर और लूप बनाने की आवश्यकता होगी? मानचित्र फ़ंक्शन के साथ कुछ करना है?

वे कुछ कूबड़ हैं जो मेरे पास थे, लेकिन मैं बदबूदार हूं और इसके साथ किसी भी मदद की सराहना करता हूं, धन्यवाद!

1
It Me 10 अक्टूबर 2019, 11:17

1 उत्तर

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

ठीक है सुनो तुम बदबूदार नोब। आप 99% रास्ते में हैं।

सबसे पहले, हम आपकी समस्या को एक सामान्य प्रश्न में बदल देते हैं ताकि स्टैक ओवरफ्लो को परेशान करने वाली क्रोधी आत्माओं को शांत किया जा सके:

मेरे पास क्रिप्टोप्राइस की एक सरणी है। मैं इसे डेटा में कैसे बदलूं कि chart.js उपयोग कर सकते हैं?

यह एक 'मेरा होमवर्क करें' प्रश्न है, जो स्टैक ओवरफ्लो को एक वाक्यविन्यास त्रुटि और संभावित रूप से नाराज डाउनवोट फेंक देगा।

इसलिए हमें इसे तोड़ना चाहिए, मामले की जड़ का पता लगाना चाहिए और इसे साफ करना चाहिए।

  • chart.js डेटा के रूप में क्या स्वीकार करता है? <उल>
  • chart.js के वेबपेज में आप इसके डॉक्स देख सकते हैं, जो काफी अच्छी तरह से लिखे हुए लगते हैं। चूंकि आप मूल्य बनाम समय प्लॉट करना चाहते हैं, आपको points, उर्फ ​​कुछ इस तरह [{x:<high price>, y:<time>}]
  • आपके पास किस प्रकार का डेटा है?
    • आपके प्रश्न और फ़ोटो के अनुसार आपके पास कुछ ऐसा है: [{high: 1, time: 2, ... /*etc*/}]
  • अब आप कुछ इस तरह पूछ सकते हैं

    मैं एक प्रकार की वस्तुओं की एक सरणी को दूसरे प्रकार की वस्तुओं की सरणी में कैसे बदल सकता हूँ?

    मुझे कुछ पुस्तकालय के साथ क्रिप्टोप्राइस बनाना है। मैं {high: 1, time: 2, ... /*etc*/} की एक सरणी को {x:<high price>, y:<time>} की एक सरणी में सुरुचिपूर्ण ढंग से कैसे बदल सकता हूं?

    तीन चीजें हो सकती हैं। एक, आप पाते हैं कि किसी और ने पहले से ही यही सवाल पूछा है, जिसे आप पहले इस कदम को उठाए बिना नहीं जानते होंगे। दूसरा, प्रश्न पूछने का एक बेहतर तरीका खोजने का प्रयास करके, आपको उत्तर स्वयं मिल गया (जो आपने लगभग पूरा कर लिया है, अच्छा काम btw)। तीसरा, आपको अभी भी इसे पूछने की ज़रूरत है, लेकिन अब आपका प्रश्न सुंदर है और आप सभी स्टैकओवरफ्लो परियों को आकर्षित करेंगे जो अब आपके योग्य प्रश्न का उत्तर देने के लिए प्रतिस्पर्धा करेंगे, यहां तक ​​कि सोचा कि यह पहले जैसा ही प्रश्न है

    दूसरा, हम मैप फंक्शन

    var cryptoprices = [
      {high:1, time:1, fields:"that", you:"don't", care:"about"},
      {high:9, time:2, otherfields:"that", arein:"theway"}
    ];
    
    //map is a function that all arrays have.
    //It calls a function on each array element, and returns an array with the results of that function.
    //So you only need to focus on how you would transform a single cryptoprice into a single point of data:
    function transform(cryptoprice) {
      //A single point should be an object that contains only the fields x and y.
      //Since you are interested in the price and time fields only...
      let point = {
        x: cryptoprice.time,
        y: cryptoprice.high
      }
      return point;
    }
    
    var points = cryptoprices.map(transform)
    console.log(points);
    // expected output: Array [Object { x: 1, y: 1 }, Object { x: 2, y: 9 }]
    
    

    और अंत में, संक्षिप्त, सुरुचिपूर्ण संस्करण:

    cryptoprices.map(c => ({x:c.time, y:c.high}))
    

    :डी

    0
    leinaD_natipaC 10 अक्टूबर 2019, 18:19