如果数组值(来自NetSuite字段)为空,是否要从数组中删除?

时间:2018-09-17 17:33:06

标签: sql arrays json netsuite

尝试使用netsuite / celigo和第三者市场将API集成在一起。大部分JSON都不错,但无法使照片正常工作。它们必须作为数组传递,但是我们的每个项目都有不同数量的照片。我可以访问netsuite中的SQL表达式以及带有一些内置在Celigo中的函数的“ JSON文档构建器”。

这就是传递的信息的样子(我用伪造的URL替换了实际的URL)。因此,我需要一种方法来从数组中删除那些空白字段,这些空白字段当前显示为“”,

  "photos": ["url.jpg", "url2.jpg", "", "", ],

“文档生成器”方面看起来像这样(看起来像Celigo的语法),同样有很多可用的功能,但没有使用,也不确定要使用哪个功能。

 "photos":["{{this.0.Photo1}}", "{{this.0.Photo2}}", "{{this.0.Photo3}}", "{{this.0.Photo4}}",],

(照片3的netsuite字段为空)

我尝试仅连接所有url,但是它们将无法采用正确的数组格式,并且相同的问题仍然适用于字段为空白的多余字符。我必须避免更改将数据实际输入到NS字段的方式,因为这会破坏我们的其他集成。

1 个答案:

答案 0 :(得分:1)

考虑到您有这个:"photos": ["url.jpg", "url2.jpg", "", "", ],

由Celigo处理的

产生以下内容:"photos":["{{this.0.Photo1}}", "{{this.0.Photo2}}", "{{this.0.Photo3}}", "{{this.0.Photo4}}",],

您如何使用 Array.filter()

let ob = {
 //..other properties
 photos:  ["url.jpg", "url2.jpg", "", "", ]
}
ob.photos = ob.photos.filter(function(el) { return el });

编辑 按照erictgrubaugh的评论,似乎Netsuite运行了Ecmascript 5,因此lamnda将不起作用。我已将其更改为以前的JS版本