【问题标题】:jquery malipulate a subarray, and return a new array using each/mapjquery对一个子数组进行malipulate,并使用each/map返回一个新数组
【发布时间】:2012-09-15 02:47:30
【问题描述】:

我有这个字符串的形式

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

我要做的是,当这个字符串被_分割时,用户将传递一个索引,(比如2)在该索引处获取项目,例如。如果索引是 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 中,我不介意!

【问题讨论】:

    标签: javascript jquery arrays string loops


    【解决方案1】:

    你的意思是这样的吗?

    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/

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 2016-07-23
      • 2016-09-16
      • 2017-08-15
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      相关资源
      最近更新 更多