0

私はこの文字列を次の形式で持っています

ItemName1:Rate1:Tax1_ItemName2:Rate2:Tax2:_ItemName3:Rate3:Tax3_ItemName4:Rate4:Tax4(など、項目 25 まで)。

私がしなければならないことは、ユーザーがインデックスを渡すことです (たとえば、2) この文字列が で分割されている場合、そのインデックスでアイテムを取得します_。index が 2 の場合、substring を取得しItemName3:Rate3:Tax3ます。ユーザーが渡すもう 1 つのものはnewItem、 、newRate、およびを示す 3 つの引数ですnewTax。次に、その特定のインデックスで見つかったこれらの古いアイテムをこれらの新しい値に置き換えて、新しい文字列返す必要があります。おそらく、例はそれを明確にするでしょう

var itemList=ItemName1:Rate1:Tax1_ItemName2:Rate2:Tax2:_ItemName3:Rate3:Tax3_ItemName4:Rate4:Tax4

ユーザーが引数を渡し2, Denim Jeans, 399.00, 14.34ました。
これはオリジナルと交換してitemList返品する必要があります

ItemName1:Rate1:Tax1_ItemName2:Rate2:Tax2:_Denim Jeans:399.00:14.34_ItemName4:Rate4:Tax4

(私が自分自身を明確にしたことを願っています)。
最も簡単な方法は、最初に分割itemList_、次に特定のインデックスで分割し:、それらの項目を分割してから置換し、for ループを使用して新しい文字列を作成し、その新しい文字列を返すことです。しかし、それは多くの仕事のようです。.each()and/orを使用してこれを達成できる簡単な方法はありませんか? の.map()中にあるかもしれませんがfor、気にしません!

4

1 に答える 1

0

このような意味ですか?

var items = str.split('_').map(function(v){ return v.split(':') });

これにより、配列が生成されます。

[
  ["ItemName1","Rate1","Tax1"],
  ["ItemName2","Rate2","Tax2"],
  ["ItemName3","Rate3","Tax3"],
  ["ItemName4","Rate4","Tax4"]
]

デモ: http: //jsfiddle.net/elclanrs/7uVDM/

于 2012-09-15T03:08:52.733 に答える