我有一个以逗号分隔的字符串从Web服务中提取到我的应用程序中,该服务列出了用户的角色。我需要对这个字符串做什么就把它变成一个数组,然后我可以处理它以获得最终结果。我已成功将字符串转换为带有jQuery的数组,即目标#1。目标#2,我不知道该怎么做,是采用新创建的数组,并删除所有包含' /'的数组项之前的所有字符,包括' /& #39;
我创建了一个简单的在制品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解决方案是在特定字符后删除字符,并不是我需要完成的工作。
答案 0 :(得分:2)
您可以使用单个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);
:
PluralizingTableNameConvention
答案 1 :(得分:1)
您可以遍历数组并执行此字符串替换:
currentUserRole.forEach(function (role) {
role = role.replace(/(.*\/)/g, '');
});
答案 2 :(得分:1)
$(document).ready(function(){
var A=['ABCD','ABCD/Admin','ABCD/DataManagement','ABCD/XYZTeam','ABCD/DriverUsers','ABCD/RISC'];
$.each(A,function(i,v){
if(v.indexOf('/')){
var e=v.split('/');
A[i]=e[e.length-1];
}
})
console.log(A);
});
答案 3 :(得分:0)
您可以更换不需要的部分。
tr
答案 4 :(得分:0)
var importUserRole = 'ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC';
var currentUserRole = importUserRole.split(',');
for(i=0;i<currentUserRole.length;i++ ){
result = currentUserRole[i].split('/');
if(result[1]){
console.log(result[1]+'-'+i);
}
else{
console.log(result[0]+'-'+i);
}
}
在控制台中,您将获得所需的结果和数组索引
答案 5 :(得分:0)
您可以使用split方法,因为您已经准备好了解string split method,然后使用pop方法删除数组的最后一个索引并返回值remove pop method
var importUserRole = ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC';
var currentUserRole = importUserRole.split(',');
for(var x = 0; x < currentUserRole.length; x++;){
var data = currentUserRole[x].split('/');
currentUserRole[x] = data.pop();
}
这是一条很长的路
你可以像你所做的那样迭代数组,然后检查是否包含了'/'你将采用indexOf并在'/'之后取代字符串 substring method in javaScript
var importUserRole = 'ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC';
var currentUserRole = importUserRole.split(',');
for(var x = 0; x < currentUserRole.length; x++){
if(currentUserRole[x].includes('/')){
var lastIndex = currentUserRole[x].indexOf('/');
currentUserRole[x] = currentUserRole[x].substr(lastIndex+1);
}
}
答案 6 :(得分:0)
我会喜欢这个;
var iur = 'ABCD,ABCD/Admin,ABCD/DataManagement,ABCD/XYZTeam,ABCD/DriverUsers,ABCD/RISC',
arr = iur.split(",").map(s => s.split("/").pop());
console.log(arr);
&#13;