从http响应中,我收到了这样的对象:
{"[3, company1]":["role_user"], "[4, company2]":["role_admin"] }
键是一个数组...在打字稿中是否有转换键的方法
"[3, company1]"
在这样的数组中
[3, "company1"]
?
答案 0 :(得分:0)
您可以将Object.keys与map结合在一起,并使用split将字符串转换为数组
let data = {"[3, company1]":["role_user"], "[4, company2]":["role_admin"] }
let keys = Object.keys(data)
.map(
el =>
el.replace('[', '')
.replace(']', '')
.split(',')
.map(el => el.trim())
.map(el => isNaN(parseFloat(el))
? el
: parseFloat(el))
)
console.log("Keys: ", keys)
答案 1 :(得分:0)
您要将密钥转换为什么?
如果要将其转换为普通数组,则应执行以下操作。
const httpResponse = {
"[3, company1]": ["role_user"],
"[4, company2]": ["role_admin"]
};
const convertedKeys = Object.keys(httpResponse).map(value => {
let keyArray = value.replace("[", "").replace("]", "").split(", ");
return [parseInt(keyArray[0]), keyArray[1]];
});
console.log(convertedKeys);
如果以上都不是您想要的,请再次改写您的问题。
答案 2 :(得分:0)
您可以使用// header.component.jsx
const mapStateToProps = state => ({ // react-redux passes here the whole redux store to the argument state
/*
you want access currentUser of user reducer,
so you just access it the same way as you would do it
in javascript object, with use of dots.
*/
currentUser: state.user.currentUser //
});
export default connect(mapStateToProps)(Header);
处的字符串// whenever in your component code
console.log(this.props.currentUser);
和slice(1,-1)
删除第一个和最后一个字符(逗号在两侧带有可选空格)。
然后将第一部分转换为数字并返回数组
split
答案 3 :(得分:0)
如果已经引述company1
部分会更容易,那么您就可以使用JSON.parse
。实际上,让我们开始吧!通过搜索和替换在company1
部分加引号。
let key = `[3, company1]`;
let obj = JSON.parse(key.replace(/[$A-Z_]\w*/gi, '"$&"'))
console.log(obj);
注意:我正在猜测哪些字符可能是有效的,并且带有看起来像JavaScript标识符的模糊字符。 [$A-Z_]\w*
由于反序列化的歧义性,显然不是逗号和右方括号。