javascript - Function don't return value from array -


this question has answer here:

i have snippet of code

 for(var i=0; < this.arr2.length; i++) {       arr.push({           id: i.tostring(),           label: this.arr2[i],           display: () => this.arr2[i]       })   } 

why display undefined if doing

let val = this.arr2[i]; display: () => val  

is working fine

you should use let keyword in order declare block scope local variable

for(let = 0; < this.arr2.length; i++) {   arr.push({       id: i.tostring(),       label: this.arr2[i],       display: () => this.arr2[i]   }) } 

for example use map method.

the map() method creates new array results of calling provided function on every element in calling array.

arr=arr2.map(function(item,i){    return {id:i,label:item,display:()=>item}; }); 

short example:

arr2=[1,2,3,4,5];  arr=arr2.map(function(item,i){         return {id:i,label:item,display:()=>item};  });  console.log(arr[1].display());


Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -