用它的位置替换数组项

时间:2015-04-13 19:48:47

标签: javascript arrays regex

我想用它的位置替换数组中的每个项目。简单的例子:

var items = 'ABCDefgh';
//how to replace items with its position to be
[0][1][2][3][4][5][6][7]

我使用它但它只替换最后一项。

for(var i=0;i<items.length;i++){
var items_positions = items.replace(items[i],'['+items.indexOf(items[i])+']');
alert(items_positions);
}
// it returns ABCDefg[7]

并尝试使用RegExp

for(var i=0;i<items.length;i++){
    var items_positions = items.replace(new RegExp(items[i],"g"),'['+items.indexOf(items[i])+']');
    alert(items_positions);
    }
    // it returns no thing

2 个答案:

答案 0 :(得分:1)

这实际上不需要正则表达式。

var items = 'ABCDefgh';
var items_positions = "";
for (var i = 0; i < items.length; i++) {
  
  items_positions += '[' + i + ']';
}
alert(items_positions)

答案 1 :(得分:0)

您需要先复制items,然后每次循环更新。没有必要使用indexOf()来查找元素的位置,因为它始终与i相同。

var items = 'ABCDefghAfi';
var items_positions = items;
for (var i = 0; i < items.length; i++) {
  items_positions = items_positions.replace(new RegExp(items[i], 'g'), '[' + i + ']');
}
alert(items_positions);