typescript - 打字稿 mapKey 和挑选
问题描述
我想在ts中转换下面的js代码,不使用loadish.js。
let claimNames = _.filter<string>(_.keys(decodedToken), o =>
o.startsWith(ns)
);
let claims = <any>(
_.mapKeys(_.pick(decodedToken, claimNames), (value, key) =>
key.replace(ns, "").substring(1)
)
);
或者有什么地方我可以就这种情况找到一些帮助。
解决方案
所以你有一个对象,键以 ns 定义的子字符串开头,假设它是“ns”。
例子:
{
foobar: 'foobar',
nsfoo: 'foo',
nsbar: 'bar'
}
你想把它映射到
{
foo: 'foo',
bar: 'bar'
}
你可以这样做:
var ns = 'ns';
var obj = {
foobar: 'foobar',
nsfoo: 'foo',
nsbar: 'bar'
};
var newObj = {};
Object.keys(obj).filter(key => key.startsWith(ns)).forEach(key => newObj[key.replace(ns, '')] = obj[key]);
console.log(newObj);
推荐阅读
- r - R如果每行的最大值为负,则将字符串添加到colnames
- css - 对带有 XSLT 的样式表使用相对 href 不适用于 macOS WebView (Xamarin.Forms 5.x)
- python - 你可以直接定义 __doc__ 吗?
- winforms - WinForms:DevExpress:GridView:鼠标双击打开表单
- redirect - 如何将流量重定向到 cisco 交换机 3750 上的另一个接口?
- r - 如果满足特定条件,则删除数据框中的行,同时更新关联的总值
- mysql - 如何显示结果 - MySQL 问题
- amazon-web-services - ListSamlProvidersRequestinput 不存在吗?
- c++ - 我不明白命令设计模式在游戏开发中的工作原理
- java - 即使我有一个 liquibase.properties 文件,也没有指定数据库 URL