jsonnet - удалить нулевые значения из массива - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу удалить пустые значения и дубликаты из массива, дублирующиеся значения удаляются, пустое не

шаблон:

local sub = [ "", "one", "two", "two", ""];
{
 env: std.prune(std.uniq(std.sort(sub)))
}

вывод:

{
  "env": [
    "",
    "one",
    "two"
  ]
}

std.prune должен удалить пустой, ноль, но это не происходит, я делаю что-то не так?или есть другой способ удалить пустые значения?

1 Ответ

0 голосов
/ 19 декабря 2018

Согласно https://jsonnet.org/ref/stdlib.html#prune

«Пусто» определяется как нулевая длина arrays, нулевая длина objects или null значения.

то есть "" не рассматривается для сокращения, затем вы можете использовать понимание как (обратите внимание, также используя std.set(), поскольку оно буквально uniq(sort())):

local sub = [ "", "one", "two", "two", ""];
{
   env: [x for x in std.set(sub) if x!= ""]
}

или std.length(x) > 0 для этогоусловное.

...