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

问题描述 投票:0回答:1

尝试使用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的netsuite字段是空的)

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

sql arrays json netsuite
1个回答
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版本

© www.soinside.com 2019 - 2024. All rights reserved.