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
Post a Comment