2013-09-12 3 views
0

яваскрипта, добавляя через запятую после каждого элемента APIJavaScript, добавляя через запятую после каждого API элемента

Я хотел бы, после каждого SKU элемента в моих API вызовов, чтобы добавить в «» запятая персонаж. Тем не менее, способ, которым я в настоящее время это делаю, добавляет запятую в самом конце тоже, просто ошибка в 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: использование]]

Все, что делает для меня это делает фактическое выталкивается код выглядеть следующим образом:

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

Я хотел бы, чтобы он выглядеть следующим образом:

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

Таким образом, там лежит моя проблема.

У кого-нибудь есть идеи?

+2

Это не работает JavaScript. i.e ''AR20', '3081' не является допустимым значением для свойства объекта, используйте массив' [' AR20 ',' 3081 '] '. – undefined

+1

Вам нужно, чтобы это выглядело {'product_ids': ['AR20', '3081']} –

+1

@ user1879703 Я боюсь, что последний комментарий не имеет смысла. – Blazemonger

ответ

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

Лучшим решением было бы исправить In- код дома, чтобы не генерировать запятую в последней итерации.

Смежные вопросы