以最小的改动解决以下代码的错误(可以使用es6)

const obj = {
  name: " jsCoder",
  skill: ["es6", "react", "angular"],
  say: function () {
    for(var i = 0, len = this.skill.length; i< len; i++){
      setTimeout(function(){
        console.log('No.' + i + this.name);
        console.log(this.skill[i]);
        console.log('--------------------------');
      }, 0);
      console.log(i);
    }
  }
};
obj.say();

/* 期望得到下面的结果: 1 2 3 No.1 jsCoder

es6

No.2 jsCoder

react

No.3 jsCoder

angular

*/

var obj = {
  name: " jsCoder",
  skill: ["es6", "react", "angular"],
  say: function () {
      console.log(this.skill.length)
    for(var i = 1, len = this.skill.length; i<= len; i++){

      (function(i,_this){
                setTimeout(function(){
                      console.log('No.' + i + _this.name);
                     console.log(_this.skill[i]);
                   console.log('--------------------------');

      }, 0);
      console.log(i);
                })(i,this)
    }
  }
};
执行obj.say()会打印出如下:
1
2
3
No.1 jsCoder
es6
--------------------------
No.2 jsCoder
react
--------------------------
No.3 jsCoder
angular
--------------------------
*/