मैं अपने कोणीय प्रोजेक्ट के लिए एक इंटरफ़ेस को मैप करने का प्रयास कर रहा हूं जहां एक उपयोगकर्ता रैपिडएपीआई में व्हाट्सप्ले एपीआई का उपयोग करके एक वीडियो गेम खोज सकता है। जब आप वीडियो गेम विवरण खोजते हैं, तो परिणाम एक गेम देता है जिसे उसके संख्यात्मक आईडी द्वारा पहचाना जाता है। वह आईडी 25, या 105, या 3000, या कई अन्य संभावित संख्याएं हो सकती हैं ...

इंटरफ़ेस मेरे पास वर्तमान में है ...

export interface VideoGameDetails {
    gameID: {
        data: Game;
    }
}

सभी परिणाम मुझे वह ऑब्जेक्ट देते हैं जिसमें गेम डेटा होता है, लेकिन गेमआईडी बदल जाता है। मुझे यकीन नहीं है कि उस रूट ऑब्जेक्ट को गतिशील और अन्य घटकों में उपयोग करने के लिए कैसे तैयार किया जाए जो इस तरह के डेटा की सदस्यता लेते हैं और प्राप्त करते हैं।

अपडेट करें नीचे सुझाए गए इंटरफ़ेस का उपयोग करने के संबंध में, मैं एक ऐसी विधि की सदस्यता का उपयोग करके डेटा तक पहुंचने के बारे में कैसे जाउंगा जो इस तरह के डेटा को लौटाती है।

घटक जो गेम आईडी द्वारा डेटा प्राप्त करने वाली विधि की सदस्यता लेता है...

this.gameService.fetchSelectedGame(gameId)
      .subscribe((results) => {
        this.game = results;
      });

तो उस इंटरफ़ेस के आधार पर जिसके साथ मुझे काम करना है, मुझे प्राप्त होने वाले परिणामों का एक उदाहरण है ...

1468 {
   data: Game;
}

मैं उस परिणाम पैरामीटर का उपयोग करके डेटा ऑब्जेक्ट में कैसे खोदूं? मैं results.id, या results.data जैसी किसी चीज़ का उपयोग नहीं कर सकता। आपकी मदद के लिए पुनः शुक्रिया।

0
ACDev 3 नवम्बर 2021, 02:05

1 उत्तर

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

ये कोशिश करें:

export interface VideoGameDetails {
    [id: number]: {
        data: Game;
    }
}

अपडेट करें

चेतावनी: मैंने कंपाइल या रन नहीं किया या सिंटैक्स भी इसे चेक नहीं किया... आपको चेतावनी दी गई है :) उपयोग उदाहरण:

for (let k in results) {
    const result = results[k];
    console.log(result.data.someGameField);
}
1
Alexander Leonov 5 नवम्बर 2021, 06:25
धन्यवाद। ऐसा लगता है कि मेरे टेक्स्ट एडिटर को उस इंटरफ़ेस में कोई समस्या नहीं है, लेकिन जब आईडी एक बदलती संख्या है तो मुझे प्राप्त डेटा में खुदाई करने में परेशानी हो रही है। मैंने उपरोक्त प्रश्न को और विस्तृत करने के लिए अद्यतन किया है।
 – 
ACDev
4 नवम्बर 2021, 03:07
1
मैंने अपने उत्तर को उपयोग उदाहरण के साथ अपडेट किया, कृपया एक नज़र डालें।
 – 
Alexander Leonov
5 नवम्बर 2021, 06:29
इसने खूबसूरती से काम किया। बहुत - बहुत धन्यवाद!
 – 
ACDev
7 नवम्बर 2021, 22:01
यह मुझे लूप के अंत में एक अपरिभाषित देता है, लेकिन मैंने बस एक ब्रेक लगाया; उसके बाद पहले पुनरावृत्ति।
 – 
ACDev
7 नवम्बर 2021, 22:10