javascript - 如何删除数组数据中特定字符之前的所有字符

标签 javascript jquery arrays arraylist

我有一个逗号分隔的字符串从网络服务中拉入我的应用程序,其中列出了用户的 Angular ​​色。我需要对这个字符串做的是将它变成一个数组,这样我就可以处理它以获得我的最终结果。我已经使用 jQuery 成功地将字符串转换为数组,这是目标 #1。目标 #2(我不知道该怎么做)是采用新创建的数组,并删除包含“/”(包括“/”)的任何数组项之前的所有字符。

我创建了一个简单的正在进行的 JSFiddle:https://jsfiddle.net/2Lfo4966/

我收到的字符串如下: ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC

上面字符串中的ABCD/是可以改变的,可以是XYZMNO

要转换为数组,我做了以下操作:

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();
}

Example fiddle

使用 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/

相关文章:

javascript - 生成 html 时,将 .push() 填充的数组存储在 html 数据属性中

javascript - 使用 JQuery 定位一个 div

javascript - 按键和按键上的 String.fromCharCode 返回错误字符

javascript - 更改 TogetherJS 中的默认名称

javascript - 将 amMap 中选定区域的颜色更改为与相邻区域不同的颜色,

javascript - 如果我在点击相应链接之前先滚动页面,弹出窗口会出现在错误的位置

java - 查找数组其余部分中大于每个当前位置的元素的数量

javascript - !== 比较运算符应该为 True 但不是

javascript - 如何使用 Nodejs 将新 ID 递增并添加到 Json 数组树结构中的新节点

javascript - 是否有一种正确的方法来确保一次只有一个用户使用 REST+HTTP 更改对象?