【问题标题】:JavaScript Array of Self-Contained Functions access to index of self自包含函数的 JavaScript 数组访问自身的索引
【发布时间】:2015-03-08 08:17:08
【问题描述】:

给定一组自包含的 JavaScript 函数,有没有办法从函数代码中访问它们各自的索引?我想避免在函数代码中对这些索引进行硬编码:

var testArr = [
(function(){return 0})(),
(function(){return 'how to return/access ARRAY INDEX (=1)??'})()
]


console.log(testArr[0]) // 0
console.log(testArr[1]) // how to return/access ARRAY INDEX (=1)??

【问题讨论】:

  • 这似乎是一个 XY 问题。您实际上想要完成什么(作为一个更大的目标)?
  • 函数代码中需要有一个IF语句,使用该函数的数组索引(上次运行的是哪个函数)
  • 为什么不将上次运行的函数存储在另一个变量中,例如var lastIndex;。然后,无论何时调用一个函数,都可以更新它的值。
  • 是的,我确实存储了运行哪个 fn。我将如何在函数 [1] 中写入,例如“if (lastIndex === 1)”,其中“1”是自索引?
  • 我仍然对您的更大目标感兴趣。为什么要将这些自执行函数存储在数组中?可能有一种更简单的方法来处理您想要完成的任何事情。如果您更详细地解释了您正在尝试做什么(除了访问给定函数的数组索引),我们也许可以为您提供进一步的帮助。

标签: javascript arrays function self-contained


【解决方案1】:

分析了不同的选项,我认为这是最合适的(无需立即调用自包含函数 + 将数组索引传递给函数参数)

var testArr = [
(function(idx){return idx}),
(function(idx){return idx * 2})
]

console.log(testArr[0](0)) // 0
console.log(testArr[1](1)) // 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多