我有一个逗号分隔的字符串从网络服务中拉入我的应用程序,其中列出了用户的 Angular 色。我需要对这个字符串做的是将它变成一个数组,这样我就可以处理它以获得我的最终结果。我已经使用 jQuery 成功地将字符串转换为数组,这是目标 #1。目标 #2(我不知道该怎么做)是采用新创建的数组,并删除包含“/”(包括“/”)的任何数组项之前的所有字符。
我创建了一个简单的正在进行的 JSFiddle:https://jsfiddle.net/2Lfo4966/
我收到的字符串如下:
ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC
ABCD/
是可以改变的,可以是XYZ
,MNO
等
要转换为数组,我做了以下操作:
var importUserRole = 'ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC';
var currentUserRole = importUserRole.split(',');
使用 console.log
,我得到以下结果:
["ABCD", "ABCD/Admin", "ABCD/DataManagement", "ABCD/XYZTeam", "ABCD/DriverUsers", "ABCD/RISC"]
我现在需要代码来查看数组的每个索引,如果 /
存在,删除 /
之前的所有字符,包括 /
。
我已经搜索了一个解决方案,但我找到的 JS 解决方案用于删除特定字符后的字符,并不是我完成此操作所需的。
最佳答案
您可以使用单个 for
循环遍历数组,然后通过 /
对值进行 split()
并检索最后一个值使用 pop()
生成的结果数组。试试这个:
for (var i = 0; i < currentUserRole.length; i++) {
var data = currentUserRole[i].split('/');
currentUserRole[i] = data.pop();
}
使用 pop()
而不是显式索引(例如 [1]
)的好处是,如果其中没有斜线或有多个斜线,则此代码不会中断字符串。
您可以更进一步,使用 map()
使其更简洁:
var importUserRole = 'ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC';
var currentUserRole = importUserRole.split(',').map(function(user) {
return user.split('/').pop();
});
console.log(currentUserRole);
关于javascript - 如何删除数组数据中特定字符之前的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810897/