jquery malipulate一个子数组,并使用每个/ map返回一个新数组

时间:2012-09-15 02:47:30

标签: javascript jquery arrays string loops

我有

形式的字符串

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

我要做的是,当这个字符串由_分割时,用户将传递一个索引(比方说2)抓取该索引处的项目,例如。如果index是2,我会得到子串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

(希望我明确表示) 我知道最简单的方法是首先将itemList除以_,然后将给定的索引拆分为:,然后替换这些项,然后使用for循环创建一个新的字符串,然后返回那个新字符串。但似乎有很多工作要做。使用.each()和/或.map()是否有一种简单的方法可以实现,但可能在for内,我不介意!

1 个答案:

答案 0 :(得分: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/