【问题标题】:Is it correct to use function inside of loop在循环内使用函数是否正确
【发布时间】:2018-07-22 16:14:30
【问题描述】:

我想知道在循环内调用函数是一种好习惯,下面的两个代码有相同的结果,但我想澄清一下,这就是我想使用函数的原因,使用它是一种好习惯吗?谢谢

没有功能:

var json = {
    "lists": [
        {
            "items": [
                {
                    "one": "one",
                    "two": "two"

                }
            ]
        }
    ]
};

json.lists.forEach(function (list) {
    list.items.forEach(function (item) {
        console.log(item);
    })
});

结果:{ 一:'一',二:'二' }

功能:

var json = {
    "lists": [
        {
            "items": [
                {
                    "one": "one",
                    "two": "two"

                }
            ]
        }
    ]
};

function getItem(list) {
    list.items.forEach(function (item) {
        console.log(item);
    })
}

json.lists.forEach(function (list) {
    getItem(list)
});

结果:{ 一:'一',二:'二' }

【问题讨论】:

  • 这里使用函数没有什么问题,如果它使你的代码更易读和更容易维护。毕竟console.log()也是一个函数。你甚至可以写:json.lists.forEach(getItem)
  • 请对您所说的“正确”给出一个准确、明确、客观、可验证的定义。如果没有这样的定义,就无法判断您的代码是否正确。我们如何告诉你它是否正确,如果你不告诉我们,你认为什么是“正确的”?
  • 正如我所说的两者都有效,但我想知道哪个更好用
  • 请准确、明确、客观、可验证地定义您所说的“更好地使用”的含义。如果没有这样的定义,就无法判断您的两个示例中哪个更好用。如果您不告诉我们,我们如何告诉您哪个更好用?您使用什么标准来确定哪个“更好”?我们需要知道标准,然后我们可以检查两个部分中的哪一个满足这些标准。

标签: javascript json node.js


【解决方案1】:

为了更好的调试能力,不推荐使用匿名函数。所以尽量不要使用它们:

    var json = {
    "lists": [
        {
            "items": [
                {
                    "one": "one",
                    "two": "two"

                }
            ]
        }
    ]
};

    function logSingleItem(item) {
        console.log(item);
    }

    function loopListItem(list) {
        list.items.forEach(logSingleItem)
    }

    json.lists.forEach(loopListItem);

【讨论】:

  • 不在任何地方使用匿名函数可能有点过头了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 2015-07-04
  • 2010-09-11
  • 2017-06-20
相关资源
最近更新 更多