如何将数据和表插入到现有的表中?

军刀

将新的行和表插入已经存在的行时遇到麻烦。

让我们调用源SourceFile.lua及其简化的内容:

SourceFile = {};

SourceFile.list = {
    BrandName1 = {
        number = 10,
        products = {
            "Product1", 3,
            "Product2", 4,
            "Product3", 7,
        },
    },
    BrandName2 = {
        number = 5,
        products = {
            "Product1", 10,
            "Product2", 3,
            "Product3", 6,
        },
    },
    -- and so on
}

我想做这样的事情:

require 'SourceFile'

local myData = {
  BrandName2 = { -- add new products for the existing brand
    products = {
      "Product4", 2,
    },
  },
  MyBrandName1 = { -- add new brand
    number = 12,
    products = {
      "MyProduct1", 21,
      "MyProduct2", 95,
    },
  },
  -- and so on
}

table.insert(SourceFile.list, myData)

但是我的代码出了点问题,我得到以下结果(用inspect打印):

{
  list = { {
      BrandName2 = {
        products = { "Product4", 2 }
      },
      MyBrandName1 = {
        number = 12,
        products = { "MyProduct1", 21, "MyProduct2", 95 }
      }
    },
    BrandName1 = {
      number = 10,
      products = { "Product1", 3, "Product2", 4, "Product3", 7 }
    },
    BrandName2 = {
      number = 5,
      products = { "Product1", 10, "Product2", 3, "Product3", 6 }
    }
  }
}

我究竟做错了什么?

我是lua的新手,很确定这是显而易见的,但对我而言不是。请帮我。


加成

在获得这些答案之后,我还找到了一种方法来逐个插入新的品牌名称:

SourceFile.list.MyBrandName1 = {
    number = 12,
    products = {
      "MyProduct1", 21,
      "MyProduct2", 95,
    },
}

这不能完全回答我的问题,但是对lua初学者来说可能有用。

路德

table.insert将其第二个参数添加到数组(第一个参数)。SourceFile.list应该只具有字符串键,因此它不能作为数组使用。您将需要一个递归函数来将数据从一个表合并到另一个表:

local function meld(data, newData)
  for k, v in pairs(newData) do
    local oldValue = data[k]
    if type(oldValue) ~= 'table' or type(v) ~= 'table' then
      -- One of the values is not a table, so let's clobber the old value.
      data[k] = v
    else
      -- Both are tables.
      meld(oldValue, v)
    end
  end
end

meld(SourceFile.list, myData)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何仅将某些字段插入到 hive 表中,重用现有的表架构?

来自分类Dev

如何将Pandas DataFrame插入现有的PostgreSQL表中?

来自分类Dev

如何使用外键将值插入到现有的 SQL Server 表中

来自分类Dev

使用SSIS,如何将Excel工作表中的新数据插入到我现有的SQL Server表中

来自分类Dev

从Excel中获取数据并插入到现有的Word表中?

来自分类Dev

从Excel中获取数据并将其插入到现有的Word表中?

来自分类Dev

如何将Excel数据插入C#中的现有表

来自分类Dev

如何将现有的Google工作表插入Google电子表格?

来自分类Dev

如何将现有的数据表放入数据集中?

来自分类Dev

如何使用 bash 和 libreoffice calc headless 将几行数据插入到现有的 .odt 文件中?

来自分类Dev

如何将xml数据插入到表中?

来自分类Dev

将数据表插入现有的Access文件中

来自分类Dev

如何将数据的时间窗口插入到表中,该窗口与具有唯一约束的现有行部分重叠

来自分类Dev

如何将新数据追加到现有的配置单元表

来自分类Dev

将Excel数据导入到现有的SQL Server 2005表中

来自分类Dev

如何将新的列族添加到现有的HBase表中?

来自分类Dev

如何将表头添加到现有的jasper表组件中?

来自分类Dev

如何将列重写(复制)到现有的SQLite数据库中

来自分类Dev

如何使用现有表和新列将数据插入临时表

来自分类Dev

如何将数据插入表中?

来自分类Dev

将行插入到现有表中

来自分类Dev

如何将另一个表中的数据插入具有自动递增ID的现有表中?

来自分类Dev

动态地将json数据行插入到现有表中

来自分类Dev

如何将每个tr的HTML表数据插入到SQL表中

来自分类Dev

蜂巢:如何将数据从分区表插入到分区表中?

来自分类Dev

如何将数据插入到“具有并属于多个”关系的表中。滑轨中的脚手架生成的控制器和模型

来自分类Dev

如何将动态openquery的结果插入现有表中?

来自分类Dev

如何将数据插入到id = ...的现有列中?

来自分类Dev

如果我的数据是从函数返回的,如何将多行数据插入到表变量中?

Related 相关文章

  1. 1

    如何仅将某些字段插入到 hive 表中,重用现有的表架构?

  2. 2

    如何将Pandas DataFrame插入现有的PostgreSQL表中?

  3. 3

    如何使用外键将值插入到现有的 SQL Server 表中

  4. 4

    使用SSIS,如何将Excel工作表中的新数据插入到我现有的SQL Server表中

  5. 5

    从Excel中获取数据并插入到现有的Word表中?

  6. 6

    从Excel中获取数据并将其插入到现有的Word表中?

  7. 7

    如何将Excel数据插入C#中的现有表

  8. 8

    如何将现有的Google工作表插入Google电子表格?

  9. 9

    如何将现有的数据表放入数据集中?

  10. 10

    如何使用 bash 和 libreoffice calc headless 将几行数据插入到现有的 .odt 文件中?

  11. 11

    如何将xml数据插入到表中?

  12. 12

    将数据表插入现有的Access文件中

  13. 13

    如何将数据的时间窗口插入到表中,该窗口与具有唯一约束的现有行部分重叠

  14. 14

    如何将新数据追加到现有的配置单元表

  15. 15

    将Excel数据导入到现有的SQL Server 2005表中

  16. 16

    如何将新的列族添加到现有的HBase表中?

  17. 17

    如何将表头添加到现有的jasper表组件中?

  18. 18

    如何将列重写(复制)到现有的SQLite数据库中

  19. 19

    如何使用现有表和新列将数据插入临时表

  20. 20

    如何将数据插入表中?

  21. 21

    将行插入到现有表中

  22. 22

    如何将另一个表中的数据插入具有自动递增ID的现有表中?

  23. 23

    动态地将json数据行插入到现有表中

  24. 24

    如何将每个tr的HTML表数据插入到SQL表中

  25. 25

    蜂巢:如何将数据从分区表插入到分区表中?

  26. 26

    如何将数据插入到“具有并属于多个”关系的表中。滑轨中的脚手架生成的控制器和模型

  27. 27

    如何将动态openquery的结果插入现有表中?

  28. 28

    如何将数据插入到id = ...的现有列中?

  29. 29

    如果我的数据是从函数返回的,如何将多行数据插入到表变量中?

热门标签

归档