0

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>

你可以看到我把逗号放在了结尾 [[/DMI:Use]] 之前

对我来说,它使实际推出的代码看起来像这样:

            var rfk = rfk || [];
            rfk.push({"product_ids": ['AR20','3081',]});

我想让它看起来像这样:

            var rfk = rfk || [];
            rfk.push({"product_ids": ['AR20','3081']});

因此,therelin 是我的问题所在。

有人有想法么?

4

1 回答 1

0

所以你的意思是这段代码:

[[[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 || [];
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 });

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

于 2013-09-12T14:24:36.587 回答