如果数组值(取自 NetSuite 字段)为空,请从数组中删除?



尝试使用netsuite/celigo和第三方市场将API集成放在一起。 大多数JSON都很好,但无法使照片正常工作。 它们必须作为数组传递,但是我们的每个项目都有不同数量的照片。我可以访问netsuite中的SQL表达式和一种"JSON文档生成器",该构建器在Celigo中也内置了多个功能。

这就是正在传递的信息的样子(我用假的 URL 替换了实际的 URL(。所以我需要一种方法从数组中删除那些空白字段,这些字段当前显示为",

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

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

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

(其中照片 3 的网络套件字段为空(

我尝试只是连接所有 url,但随后它们不会采用正确的数组格式,并且相同的问题仍然适用于字段为空的额外字符。我必须避免更改数据实际输入 NS 字段的方式,因为这会搞砸我们的其他集成。

考虑到你有这个:"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版本

最新更新