2016-06-29 18 views
27

मैं इस विषय पर जावास्क्रिप्ट प्रश्नों के बीच चले गए हैं, इस सवाल का टाइपप्रति साथ Angular2 के बारे में विशेष रूप से है।कोणीय 2 और टाइपप्रति के साथ दो वस्तु सरणियों विलय?

मुझे क्या करना कोशिश कर रहा हूँ एक सरणी के लिए json वस्तुओं को श्रेणीबद्ध करने के लिए है।

मेरे कोड कुछ इस तरह दिखता,

public results: []; 


public getResults(){ 
    this._service.get_search_results(this._slug, this._next).subscribe(
      data => { 
       this.results.concat(data.results); 
       this._next = data.next; 
      }, 
      err => { 
       console.log(err); 
      } 
     ); 
} 

मैं कैसे टाइपप्रति और कोणीय साथ this.results करने के लिए data.results जोड़ सकते हैं?

this._slug और this._next कक्षा पर सेट हैं।

धन्यवाद।

उत्तर

48

मुझे लगता है कि अगर आप निम्नलिखित का उपयोग करना चाहिए:

data => { 
    this.results = this.results.concat(data.results); 
    this._next = data.next; 
}, 

concatdoc से: विधि

concat() एक नई सरणी सरणी के शामिल है जिस पर वह कहा जाता है देता है तर्क के रूप में प्रदान सरणी (रों) और/या मूल्य (रों) के साथ शामिल हो गए।

+0

दुर्भाग्य से मदद करता है, कि Uint8arrays साथ काम नहीं करता :( –

27

फैला ऑपरेटर थोडा शांत है।

this.results = [ ...this.results, ...data.results]; 

प्रसार ऑपरेटर आप आसानी से एक और सरणी में एक सरणी के विस्तारित संस्करण रख सकते हैं।

You can read about spread operator here.

0

तुम भी रूप ES6 द्वारा सिफारिश का उपयोग कर सकते हैं:

data => { 
    this.results = [ 
    ...this.results, 
    data.results, 
    ]; 
    this._next = data.next; 
}, 

यह काम करता है अगर आप अपने सरणी पहले प्रारंभ (public results = [];); अन्यथा ...this.results ? this.results : [], द्वारा ...this.results, बदलें।

आशा इस

संबंधित मुद्दे