From b4fd8763e8cd72e521b668bf75a0f37061f5762d Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Sun, 18 Aug 2019 10:49:22 +0800 Subject: fix #533 --- xmake/core/base/table.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'xmake/core/base/table.lua') diff --git a/xmake/core/base/table.lua b/xmake/core/base/table.lua index 1f3e79add..1917d827a 100644 --- a/xmake/core/base/table.lua +++ b/xmake/core/base/table.lua @@ -309,5 +309,35 @@ function table.values(tab) return valueset, n end +-- map values to a new table +function table.map(tab, mapper) + + assert(tab) + if mapper == nil then + return table.copy(tab) + end + + local newtab = {} + for k, v in pairs(tab) do + newtab[k] = mapper(k, v) + end + return newtab +end + +-- map values to a new array +function table.imap(arr, mapper) + + assert(arr) + if mapper == nil then + return table.copy(arr) + end + + local newarr = {} + for k, v in ipairs(arr) do + table.insert(newarr, mapper(k, v)) + end + return newarr +end + -- return module: table return table -- cgit v1.3.1 From bd4181e0321ec9db4dd6b304db51f5cf6566a484 Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Sun, 18 Aug 2019 11:01:11 +0800 Subject: fix map --- xmake/core/base/table.lua | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'xmake/core/base/table.lua') diff --git a/xmake/core/base/table.lua b/xmake/core/base/table.lua index 1917d827a..c08526c34 100644 --- a/xmake/core/base/table.lua +++ b/xmake/core/base/table.lua @@ -313,9 +313,7 @@ end function table.map(tab, mapper) assert(tab) - if mapper == nil then - return table.copy(tab) - end + assert(mapper) local newtab = {} for k, v in pairs(tab) do @@ -328,9 +326,7 @@ end function table.imap(arr, mapper) assert(arr) - if mapper == nil then - return table.copy(arr) - end + assert(mapper) local newarr = {} for k, v in ipairs(arr) do -- cgit v1.3.1