Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 操作数组[“删除”、“取消”和由字符串确定的权限;01“;_Javascript_Arrays_Algorithm_Typescript - Fatal编程技术网

Javascript 操作数组[“删除”、“取消”和由字符串确定的权限;01“;

Javascript 操作数组[“删除”、“取消”和由字符串确定的权限;01“;,javascript,arrays,algorithm,typescript,Javascript,Arrays,Algorithm,Typescript,后端响应一系列操作[“删除”、“取消”、“编辑”、“单击按钮”]等。 返回另一个字符串,其中包含例如“1001”。它代表执行操作的权利 所以在本例中,我们只能删除并单击按钮 什么是最快的方式来获得正确的行动 (在前端,我需要快速获得每个组件对应的正确值。) 我想循环actions数组,直到出现例如cancel标签,然后获取索引,并使用索引获取相应的0或1。有没有更快的办法 谢谢您可以这样做: var操作=[“删除”、“取消”、“编辑”、“单击按钮”]; var mask=“1001”; var

后端响应一系列操作[“删除”、“取消”、“编辑”、“单击按钮”]等。 返回另一个字符串,其中包含例如“1001”。它代表执行操作的权利

所以在本例中,我们只能删除并单击按钮

什么是最快的方式来获得正确的行动

(在前端,我需要快速获得每个组件对应的正确值。)

我想循环actions数组,直到出现例如cancel标签,然后获取索引,并使用索引获取相应的0或1。有没有更快的办法


谢谢

您可以这样做:

var操作=[“删除”、“取消”、“编辑”、“单击按钮”];
var mask=“1001”;
var getActions=函数(操作、标志){
flags=flags.split(“”);
返回操作.filter(函数(操作,i){
返回标志[i]=“1”
});
};
var allowedActions=getActions(操作,掩码);
console.log(允许的操作);

日志(“可以删除吗?”,允许操作。包括(“删除”)您可以这样做:

var操作=[“删除”、“取消”、“编辑”、“单击按钮”];
var mask=“1001”;
var getActions=函数(操作、标志){
flags=flags.split(“”);
返回操作.filter(函数(操作,i){
返回标志[i]=“1”
});
};
var allowedActions=getActions(操作,掩码);
console.log(允许的操作);
日志(“可以删除吗?”,允许操作。包括(“删除”)这应该可以做到:

var操作=[“删除”、“取消”、“编辑”、“单击按钮”];
var rights=“1001”;
函数hasRight(右){
返回权限[actions.indexOf(right)]=“1”;
}
log(“删除”,hasRight(“删除”);
log(“取消”,hasRight(“取消”);
log(“编辑”,hasRight(“编辑”);
日志(“clickbutton”,右键(“clickbutton”);
console.log(“foobar”,hasRight(“foobar”);//对于无效操作,返回“false”。
这应该可以做到:

var操作=[“删除”、“取消”、“编辑”、“单击按钮”];
var rights=“1001”;
函数hasRight(右){
返回权限[actions.indexOf(right)]=“1”;
}
log(“删除”,hasRight(“删除”);
log(“取消”,hasRight(“取消”);
log(“编辑”,hasRight(“编辑”);
日志(“clickbutton”,右键(“clickbutton”);

console.log(“foobar”,hasRight(“foobar”);//对于无效操作,返回“false”。
如果要返回操作数组和权限字符串,你为什么不直接从服务器返回他们有权执行的操作数组,而不是在前端执行逻辑,在前端可以进行更改?这是一个企业应用程序,他们不打算修改当前的行为。作为一名前端开发人员,他们希望在javascript上迁移前端,我应该尽快适应。脚本不是javascript,因此不应该同时使用javascript和typescript进行标记,除非它与transpiling
let worksInVanilla:boolean=false有关
[“删除”、“取消”、“编辑”、“单击按钮”]。减少((r,c,i)=>“1001”[i]==“1”?r.concat(c):r,[])如果你返回一个动作数组和一系列权限,为什么不直接从服务器返回他们有权访问的动作数组,而不是在前端进行逻辑操作,这样就可以进行更改?这是一个企业应用程序,他们不打算修改当前的行为。作为一名前端开发人员,他们希望在javascript上迁移前端,我应该尽快适应。脚本不是javascript,因此不应该同时使用javascript和typescript进行标记,除非它与transpiling
let worksInVanilla:boolean=false有关
[“删除”、“取消”、“编辑”、“单击按钮”]。减少((r,c,i)=>“1001”[i]==“1”?r.concat(c):r,[])谢谢。你认为我应该在开始时对每个动作都执行你的功能,并存储一个具有动作属性和正确属性的对象吗。或者我应该在每次需要的时候应用你的函数吗?从长远来看,当你第一次加载它们时,将“权限”存储在一个对象中会更快。也就是说,我认为性能差异不会明显,即使您在一个页面上访问这些权限10万次。谢谢。你认为我应该在开始时对每个动作都执行你的功能,并存储一个具有动作属性和正确属性的对象吗。或者我应该在每次需要的时候应用你的函数吗?从长远来看,当你第一次加载它们时,将“权限”存储在一个对象中会更快。也就是说,我认为性能差异不会很明显,即使您在一个页面上访问这些权限10万次。不要仅使用
map
来迭代数组,您不需要拆分字符串来访问单个字符。
过滤器
/
包含
组合意味着您必须循环两次。这只是个人偏好:因为
delete
是一个JS关键字,我更喜欢:
actions['delete']
关键字不适用于对象成员,可以安全使用,运行map over没有根本区别,因为在这种情况下,forEach是更好的选择,拆分字符串确实太多了,但它一直困扰着我,因为好的旧IE在字符串上没有.indexOf()。你们也是。个人偏好。不过我更喜欢使用
[…标志]
。但是你。这可能在所有浏览器中都不起作用。不要仅仅使用
map
来迭代数组,你不需要拆分字符串来访问单个字符。
过滤器
/
包含
组合意味着您必须循环两次。这只是个人喜好:因为
delete
是一个JS关键字,我更喜欢:
actions['delete']
keyw