https://stackblitz.com/edit/angular- a29jfx?file=src%2Fapp%2Fapp.component.ts यह मेरा डेमो है, इस डेमो में मैं कौशल मूल्य निकालने में सक्षम नहीं हूं, मान लीजिए कि मैं विवरण दर्ज करता हूं और कौशल के लिए मूल्य "1" के रूप में रखता हूं, तो मेरे कंसोल में इसे "1" प्रदर्शित करना चाहिए। मैंने मानचित्र का उपयोग करने की कोशिश की लेकिन यह एक सरणी में मान देता है, और मुझे किसी सरणी में मान की आवश्यकता नहीं है। टीएस लाइन 76 के लिए मेरे डेमो में, मैंने कौशल निकालने की कोशिश की है, बिट यह अपरिभाषित के रूप में आता है पता नहीं क्यों, कृपया मदद करें।

-1
Rakshanda Bhure 29 मार्च 2020, 11:23

1 उत्तर

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

मूल्यों तक पहुँचने के लिए आपको .value संपत्ति की आवश्यकता नहीं है। निम्नलिखित का प्रयास करें

  // If you need to get all skills of an employee as an array.
  getEmployeeSkills(index: number){
    const employee  = this.empForm.value.employees[index]
    if (employee === undefined) return null
    return employee.skills.length === 0 ? null : employee.skills.map(skill => skill.skill);
  }

  // OR

  // Access specific skill of an employee
  getEmployeeSkill(employeeIdx: number, skillIdx: number) {
    const employee  = this.empForm.value.employees[employeeIdx];
    if (employee === undefined) return null
    return employee.skills.length === 0 ? null : employee.skills.map(skill => skill.skill)[skillIdx];
  }

तब इसे कहा जा सकता है

console.log("skills of employee 0 is ", this.getEmployeeSkills(0));
console.log("skill 0 of employee 0 is ", this.getEmployeeSkill(0, 0));
console.log("skill 1 of employee 0 is ", this.getEmployeeSkill(0, 1));

// NOTE: `this.getEmployeeSkill(0, 0)` is the same as `this.getEmployeeSkills(0)[0]`

मैंने आपके Stackblitz में बदलाव किया है

1
Michael D 29 मार्च 2020, 08:39