从表中返回具有最大值lua的对象的名称

Ranfan

我试图返回具有最大值的对象的名称。让我们假设这些信息:

maxTreeHeight = 0
maxTreeName = ""
maxLeaveLength = 0
maxLeaveName = "" 

fruitTab =
 {
   oF = { name = "Orange", avgTreeHeight = 32, avgLeaveLength = 0.27 },
   aF = { name = "Apple", avgTreeHeight = 10, avgLeaveLength = 0.14 },
   bF = { name = "Banana", avgTreeHeight = 16, avgLeaveLength = 8.9 },
   mF = { name = "Mango", avgTreeHeight = 115, avgLeaveLength = 0.98 }  
 }

--below in function
 for i, v in ipairs(fruitTab) do
   if v.avgTreeHeight > maxTreeHeight then
      maxTreeHeight = v.avgTreeHeight
      maxTreeName  = v.name
   end
   if v.avgLeaveLength > maxLeaveLength then
      maxLeaveLength = v.avgLeaveLength
      maxLeaveName = v.name
   end
 end

   print(maxLeaveName.." "..maxLeaveLength )
   print(maxTreeName.." "..maxTreeHeight)

我尝试提取这种类型的信息,但是该功能并不总是为我提供准确的值(据我所知,具有最大值的名称并不总是正确的)

除非您的某些输入表是无键的,否则不知道如何用该代码获得任何结果。

ipairs函数遍历索引索引旨在与类似数组的表一起使用。相反,您应该使用pairs通过遍历表中每个字段函数next

简单地进行更改就可以从您的示例代码中得到结果。

这是一些进一步更新的代码:

function get_max (tab)
    local maxTreeHeight = 0
    local maxTreeName = ""
    local maxLeaveLength = 0
    local maxLeaveName = ""

    for _, v in pairs(tab) do
       if v.avgTreeHeight > maxTreeHeight then
          maxTreeHeight = v.avgTreeHeight
          maxTreeName  = v.name
       end

       if v.avgLeaveLength > maxLeaveLength then
          maxLeaveLength = v.avgLeaveLength
          maxLeaveName = v.name
       end
    end

    print(maxLeaveName.." "..maxLeaveLength )
    print(maxTreeName.." "..maxTreeHeight)
end

local fruitTab = {
    oF = { name = "Orange", avgTreeHeight = 32, avgLeaveLength = 0.27 },
    aF = { name = "Apple", avgTreeHeight = 10, avgLeaveLength = 0.14 },
    bF = { name = "Banana", avgTreeHeight = 16, avgLeaveLength = 8.9 },
    mF = { name = "Mango", avgTreeHeight = 115, avgLeaveLength = 0.98 }  
}

get_max(fruitTab)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数组中返回具有最大值的对象

来自分类Dev

Excel:在非连续数组中返回具有最大值的列的名称

来自分类Dev

在具有多个条件的向量中返回最大值

来自分类Dev

从Angular中的对象获取具有最大值的元素

来自分类Dev

具有最大值的对象列表

来自分类Dev

在javascript对象中返回最大值

来自分类Dev

从对象列表中获取具有最大值的对象的最有效方法

来自分类Dev

选择表中某个值的名称(例如,最大值)

来自分类Dev

如何从具有多个值的groupby对象中获取最大值?

来自分类Dev

获取任何逻辑中具有最大值的变量的名称

来自分类Dev

返回行中3个最大值的列名称

来自分类Dev

返回具有一列最大值的行

来自分类Dev

查找具有最大值的父对象

来自分类Dev

如何提取具有最大值的django对象?

来自分类Dev

从具有多个元素的列表中返回最大值python

来自分类Dev

SQL返回列中具有最大值(在特定范围内)的行

来自分类Dev

从具有多个元素的列表中返回最大值python

来自分类Dev

在Excel中返回具有不同行长的最大值

来自分类Dev

如何获得具有最大值的表行

来自分类Dev

域获取其组中具有最大值的10个对象

来自分类Dev

使用LINQ从列表中获取具有特定属性最大值的对象

来自分类Dev

使用LINQ从列表中获取具有特定属性最大值的对象

来自分类Dev

如何只保留ArrayList中具有最大值的对象?

来自分类Dev

突出显示在特定单元格中具有最大值的表行

来自分类Dev

如何在参考表的列中查询具有最大值的行?

来自分类Dev

获取 Laravel 中每个不同项名称具有最小值和最大值的集合项

来自分类Dev

从SELECT查询中获取具有最大值的记录

来自分类Dev

在列表中查找具有最大值的项目

来自分类Dev

获取具有MongoDB中字段最大值的文档

Related 相关文章

  1. 1

    从数组中返回具有最大值的对象

  2. 2

    Excel:在非连续数组中返回具有最大值的列的名称

  3. 3

    在具有多个条件的向量中返回最大值

  4. 4

    从Angular中的对象获取具有最大值的元素

  5. 5

    具有最大值的对象列表

  6. 6

    在javascript对象中返回最大值

  7. 7

    从对象列表中获取具有最大值的对象的最有效方法

  8. 8

    选择表中某个值的名称(例如,最大值)

  9. 9

    如何从具有多个值的groupby对象中获取最大值?

  10. 10

    获取任何逻辑中具有最大值的变量的名称

  11. 11

    返回行中3个最大值的列名称

  12. 12

    返回具有一列最大值的行

  13. 13

    查找具有最大值的父对象

  14. 14

    如何提取具有最大值的django对象?

  15. 15

    从具有多个元素的列表中返回最大值python

  16. 16

    SQL返回列中具有最大值(在特定范围内)的行

  17. 17

    从具有多个元素的列表中返回最大值python

  18. 18

    在Excel中返回具有不同行长的最大值

  19. 19

    如何获得具有最大值的表行

  20. 20

    域获取其组中具有最大值的10个对象

  21. 21

    使用LINQ从列表中获取具有特定属性最大值的对象

  22. 22

    使用LINQ从列表中获取具有特定属性最大值的对象

  23. 23

    如何只保留ArrayList中具有最大值的对象?

  24. 24

    突出显示在特定单元格中具有最大值的表行

  25. 25

    如何在参考表的列中查询具有最大值的行?

  26. 26

    获取 Laravel 中每个不同项名称具有最小值和最大值的集合项

  27. 27

    从SELECT查询中获取具有最大值的记录

  28. 28

    在列表中查找具有最大值的项目

  29. 29

    获取具有MongoDB中字段最大值的文档

热门标签

归档