我有
形式的字符串 ItemName1:Rate1:Tax1_ItemName2:Rate2:Tax2:_ItemName3:Rate3:Tax3_ItemName4:Rate4:Tax4
(依此类推,直到第25项)。
我要做的是,当这个字符串由_
分割时,用户将传递一个索引(比方说2)抓取该索引处的项目,例如。如果index是2,我会得到子串ItemName3:Rate3:Tax3
。用户将传递的另一件事是3个参数,表示newItem
,newRate
和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()
和/或.map()
是否有一种简单的方法可以实现,但可能在for
内,我不介意!
答案 0 :(得分:0)
你的意思是这样吗?
var items = str.split('_').map(function(v){ return v.split(':') });
这将生成一个数组:
[
["ItemName1","Rate1","Tax1"],
["ItemName2","Rate2","Tax2"],
["ItemName3","Rate3","Tax3"],
["ItemName4","Rate4","Tax4"]
]