javascript,在每个API元素后添加逗号

javascript,在每个API元素后添加逗号,javascript,jquery,Javascript,Jquery,javascript,在每个API元素后添加逗号 我想在API调用中的每个SKU元素之后,添加一个“,”逗号字符。然而,我目前的做法是在最后也添加了一个逗号,只是把javascript搞错了。我该怎么做有什么想法吗 这些都是内部API元素,所以请原谅我将它们与我的JS代码一起发布,但这将提供更全面的情况,因为我提供了它们 我的代码是: <script type="text/javascript"> var rfk = rfk || [];

javascript,在每个API元素后添加逗号

我想在API调用中的每个SKU元素之后,添加一个“,”逗号字符。然而,我目前的做法是在最后也添加了一个逗号,只是把javascript搞错了。我该怎么做有什么想法吗

这些都是内部API元素,所以请原谅我将它们与我的JS代码一起发布,但这将提供更全面的情况,因为我提供了它们

我的代码是:

 <script type="text/javascript">
            var rfk = rfk || [];
            rfk.push({"product_ids": [[[DMI:Use dmisource='((Cart)Container.DataItem).Items' ]]'[[DMI:Expression value='((CartItem)(Container.DataItem)).Sku']][[/DMI:Expression]]',[[/DMI:Use]]]});
 </script>
我想让它看起来像这样:

            var rfk = rfk || [];
            rfk.push({"product_ids": ['AR20','3081',]});
            var rfk = rfk || [];
            rfk.push({"product_ids": ['AR20','3081']});
var rfk = rfk || [];
var values = "[[DMI:Use dmisource='((Cart)Container.DataItem).Items' ]][[DMI:Expression value='((CartItem)(Container.DataItem)).Sku']][[/DMI:Expression]],[[/DMI:Use]]";
/* the above should generate:
 * var values = "AR20,3081,";
 * but I'm not familiar with your code so that's my guess. */

// now remove a comma at the end o values string, then split it on remaing commas
var ids = values.replace(/,$/,'').split(',');
rfk.push( {"product_ids": ids });
因此,我的问题就在这里


有人有什么想法吗?

那么你的意思是这段代码:

[[[DMI:Use dmisource='((Cart)Container.DataItem).Items' ]]'[[DMI:Expression value='((CartItem)(Container.DataItem)).Sku']][[/DMI:Expression]]',[[/DMI:Use]]]
是一个循环,在服务器端生成
['AR20','3081',]
,对吗

由于
['AR20','3081',].length==2
,最后一个逗号没有任何作用,但是如果您确实需要修复它,那么您可以这样做:

            var rfk = rfk || [];
            rfk.push({"product_ids": ['AR20','3081',]});
            var rfk = rfk || [];
            rfk.push({"product_ids": ['AR20','3081']});
var rfk = rfk || [];
var values = "[[DMI:Use dmisource='((Cart)Container.DataItem).Items' ]][[DMI:Expression value='((CartItem)(Container.DataItem)).Sku']][[/DMI:Expression]],[[/DMI:Use]]";
/* the above should generate:
 * var values = "AR20,3081,";
 * but I'm not familiar with your code so that's my guess. */

// now remove a comma at the end o values string, then split it on remaing commas
var ids = values.replace(/,$/,'').split(',');
rfk.push( {"product_ids": ids });

更好的解决方案是修复内部代码,使其在上一次迭代中不生成逗号。

这不是有效的JavaScript。i、 e
'AR20','3081
不是对象属性的有效值,请使用数组
['AR20','3081']
。您需要它看起来像这样{'product_id':['AR20','3081']}@user1879703,恐怕最后一条注释毫无意义。如果您给JavaScript一个数组看起来像
['AR20','3081',]
,无论如何,它都会自动将其解释为
['AR20','3081']
。您的担心似乎没有根据。在我的API中,我通常让服务器代码循环遍历字符串,并删除返回字符串中的任何附加“,”。。但是对于这一点,我想您可以将{}解析出来,然后检查字符串的最后一个字符,然后将{}放回它。。