首页 > 解决方案 > 打字稿 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)
   )
);

或者有什么地方我可以就这种情况找到一些帮助。

标签: typescriptlodashmapkeyjoincolumn

解决方案


所以你有一个对象,键以 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);

推荐阅读