0

我有一个由 分隔的字符串"/",然后我将其拆分为一个数组。例如。

local string = 'Code/Github/Exercises'
local array = std.split(string, "/")

// ['Code', 'Github', 'Exercises']

然后如何转换array以便获得输出:

// ['Code', 'Code/Github', 'Code/Github/Exercises']
4

1 回答 1

1

下面的代码片段实现了它,std.foldl()用作“迭代器”来访问每个元素并构建返回的数组

local string = 'Code/Github/Exercises';
local array = std.split(string, '/');


// If `array` length > 0 then add `elem` to last `array` element (with `sep`),
// else return `elem`
local add_to_last(array, sep, elem) = (
  local len = std.length(array);
  if len > 0 then array[len - 1] + sep + elem else elem
);

// Accumulate array elements, using std.foldl() to visit each elem and build returned array
local concat(array) = (std.foldl(function(x, y) (x + [add_to_last(x, '/', y)]), array, []));

concat(array)
于 2021-02-13T00:27:35.393 回答