如果我有一个像:
这样的字符串数组var myStrArr=['book-in-my-house',
'chair-in-my-house',
'bed-in-my-house',
'TV-in-my-house'];
我想将 myStrArr 更改为 herStrArr ,如:
var herStrArr=['book-in-her-house',
'chair-in-her-house',
'bed-in-her-house',
'TV-in-her-house'];
如上所述,请在每个字符串中将每个“my
”更改为“her
”。
在JavaScript中进行此更改的最优雅方法是什么?
答案 0 :(得分:3)
除了循环之外别无他法。正如您在标签中指出的那样,您正在使用jQuery,您可以使用jQuery的$.map
来提供帮助。从技术上讲,这不是最优雅的解决方案,而是最简单和最短的解决方案之一:
var herStrArr = $.map(myStrArr, function(str) {
return str.replace('-my-', '-her-');
});
答案 1 :(得分:0)
您可以使用jQuery $.each
函数。
var myStrArr=['book-in-my-house',
'chair-in-my-house',
'bed-in-my-house',
'TV-in-my-house'];
$.each(myStrArr,function(i){ myStrArr[i] = myStrArr[i].replace('-my-','-her-');})
答案 2 :(得分:0)
你没有拥有来使用循环 - 如果你可以选择一个保证不包含在任何字符串中的字符。例如,使用"|"
即可:
var herStrArr = myStrArr.join("|").replace(/\bmy\b/gi, "her").split("|");
删除“我的”这个词,我认为你的意思是:
book-in-my-house => book-in-house
如果是,那么:
var strArr = myStrArr.join("|").replace(/-my\b/gi, "").split("|");
答案 3 :(得分:0)
存储['book', 'chair', 'bed', 'TV']
,然后您无需执行任何操作。