0

我有这个字符串的形式

ItemName1:Rate1:Tax1_ItemName2:Rate2:Tax2:_ItemName3:Rate3:Tax3_ItemName4:Rate4:Tax4(依此类推,直到第 25 项)。

我要做的是,用户将传递一个索引,(比如2)在该索引处获取项目,当这个字符串被分割时_,例如。如果 index 是 2,我会得到 substring ItemName3:Rate3:Tax3。用户将传递的另一件事是 3 个参数,表示newItemnewRatenewTax,然后我必须用这些新值替换在该特定索引处找到的这些旧项目返回新字符串。也许一个例子可以清楚地说明

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

(希望我说清楚了)。
我知道最简单的方法是首先拆分itemListby _,然后在给定索引处拆分:,然后替换这些项目,然后使用 for 循环创建一个新字符串,然后返回该新字符串。但这似乎是很多工作。有没有一种简单的方法可以通过使用.each()and/or来实现.map(),虽然可能在 afor中,但我不介意!

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 回答