我有一个像这样的字符串数组。替换字符串数组中的数字javascript
var items= ['products/600/application/286/tabbed/301/text',
'products/600/application/286/tabbed/305/text',
'products/600/application/500/tabbed/200/text',
'products/600/application/500/tabbed/300/text',
'products/600/application/286/tinytext',
'products/600/differenttext'];
我需要连续编号更换号码(相同的数字应该是相同的)和输出应该是这样的:
var items= ['products[1]/application[1]/tabbed[1]/text',
'products[1]/application[1]/tabbed[2]/text',
'products[1]/application[2]/tabbed[1]/text',
'products[1]/application[2]/tabbed[2]/text',
'products[1]/application[1]/tinytext',
'products[1]/differenttext'];
注意,相同的数字应该得到例如所有286相同的结果应该是[1],因为它是最低的,500应该替换为[2],因为它是下一个更大的垂直。把他们想象成孩子。例如,对于行
products/600/application/286/tabbed/301/text,
products/600/application/286/tabbed/305/text,
其同直到tabbed
,但在那之后,有2名不同的儿童和第一次的id是301秒是305所以他们应该[1] [2]。现在看行
products/600/application/286/tabbed/305/text,
products/600/application/500/tabbed/200/text,
products/600/application/500/tabbed/300/text,
在这种情况下,应用程序有两个孩子。 286和500.第二个是500,它有2个孩子。所以500的孩子应该是1和2(200和300)
我申请temp= items[0].match(/\d+/g);
后我得到结果[600,286,301]
。我是否应该使用json对象来放置从temp
获得的所有结果,或者使用2d数组?
JSON在这里无关紧要 - 它是一个序列化格式 – Alnitak
这是我不清楚问题是什么 –
@Ege它将帮助,如果你的示例输出实际上是正确的...... – Alnitak