Giter Club home page Giter Club logo

Comments (15)

suguoyao avatar suguoyao commented on May 17, 2024 12

方法四:

for (var i = 0; i< 10; i++){
    setTimeout(console.log, 1000, i)
}

from daily-interview-question.

jjeejj avatar jjeejj commented on May 17, 2024 1

这样可以么

    var arr = [];
    for (var i = 0; i < 10; i++) {
        arr[i] = i
        setTimeout(()=>{
            console.log(arr.shift())
        })
    }

@wangshaowen 能达到目的,想法很好啊 ,但是引入了数组,性能损失了一部分

from daily-interview-question.

suguoyao avatar suguoyao commented on May 17, 2024

方法三:

for (var i = 0; i < 10; i++) {
    (function () {
        var j = i;
         setTimeout(() => {
         console.log(j);
      }, 1000)
   })()
}

from daily-interview-question.

gto999 avatar gto999 commented on May 17, 2024
for (var i = 0; i< 10; i++){
    setTimeout((() => {
	console.log(i);
    })(i), 1000)
}

from daily-interview-question.

jefferyE avatar jefferyE commented on May 17, 2024
// 解法一:
for (let i = 0; i< 10; i++){
  setTimeout(() => {
    console.log(i);
  }, 1000)
}
// 解法二:
for (var i = 0; i< 10; i++){
  ((i) => {
    setTimeout(() => {
      console.log(i);
    }, 1000)
 })(i)
}

from daily-interview-question.

wangshaowen avatar wangshaowen commented on May 17, 2024

这样可以么

    var arr = [];
    for (var i = 0; i < 10; i++) {
        arr[i] = i
        setTimeout(()=>{
            console.log(arr.shift())
        })
    }

from daily-interview-question.

jjeejj avatar jjeejj commented on May 17, 2024

这道题总结来说有两种结题思路:

  1. 使用 let 的特性
  2. 使用闭包的特性

from daily-interview-question.

wangshaowen avatar wangshaowen commented on May 17, 2024

@jjeejj 谢谢大佬指点

from daily-interview-question.

MoveZZG avatar MoveZZG commented on May 17, 2024

这样可以么

    var arr = [];
    for (var i = 0; i < 10; i++) {
        arr[i] = i
        setTimeout(()=>{
            console.log(arr.shift())
        })
    }

@wangshaowen 能达到目的,想法很好啊 ,但是引入了数组,性能损失了一部分

可以说符合题意了

from daily-interview-question.

nomoreyou avatar nomoreyou commented on May 17, 2024

方法四:

for (var i = 0; i< 10; i++){
    setTimeout(console.log, 1000, i)
}

这个方法挺有意思的

from daily-interview-question.

ylfeng250 avatar ylfeng250 commented on May 17, 2024

我觉得封装一个函数也是可以

function pprint(i){setTimeout(()=>{console.log(i)},1000)}
for(var i=0;i<10;i++){pprint(i)}

from daily-interview-question.

yygmind avatar yygmind commented on May 17, 2024

已有 issue,可前往此处查看 #43

from daily-interview-question.

MiaLeung01 avatar MiaLeung01 commented on May 17, 2024
  1. Closures
for (var i = 0; i < 10; i++) {
  ((i) => {
    setTimeout(() => { 
      console.log(i);
    }, 1000);
  })(i);
}

for (var i = 0; i < 10; i++) {
  setTimeout((i) => { 
      console.log(i);
  }, 1000, i);
}
  1. let, let statement declares a block scope local variable
for (let i = 0; i< 10; i++){
   setTimeout(() => {
   console.log(i);
   }, 1000)
}
  1. use array
var arr = [];
for (var i = 0; i< 10; i++){
   arr.unshift(i);
   setTimeout(() => {
   console.log(arr.pop());
   }, 1000);
}

from daily-interview-question.

xufeiayang avatar xufeiayang commented on May 17, 2024
for (var i = 0; i< 10; i++){
    setTimeout(console.log, 1000, i)
}

秀儿,是你吗

from daily-interview-question.

prefertwo avatar prefertwo commented on May 17, 2024

这样可以么

    var arr = [];
    for (var i = 0; i < 10; i++) {
        arr[i] = i
        setTimeout(()=>{
            console.log(arr.shift())
        })
    }

你这个代码可以跑通达到要求,但是不通用,当 i 不从 0 开始就不行了。而使用let 和闭包这两种写法,是可以的。
最好还是要改成通用的方法,比如外面再声明一个从零开始的变量 m。
let arr = [];
let m = 0;
for(var i=7;i<10;i++) {
arr[m] = i;
m++;
setTimeout(function () {
console.log(arr.shift())
}, 1000)
}
输出:7、8、9

from daily-interview-question.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.