Javascript 如何在typescript中将枚举转换为键、值数组?
我想把它转换成一个像这样的数组Javascript 如何在typescript中将枚举转换为键、值数组?,javascript,arrays,typescript,enums,casting,Javascript,Arrays,Typescript,Enums,Casting,我想把它转换成一个像这样的数组 var enums = { '1': 'HELLO', '2' : 'BYE', '3' : 'TATA' }; 我看到的所有解决方案都是由键或值组成的数组 您可以使用并将其转换为所需格式 var枚举={ “1”:“你好”, “2”:再见, “3”:“塔塔” }; 让op=Object.entries(enums.map([key,value])=>({number:key,word:value})) 控制台日志(op) 需要创建映射类型的对象
var enums = {
'1': 'HELLO',
'2' : 'BYE',
'3' : 'TATA'
};
我看到的所有解决方案都是由键或值组成的数组 您可以使用并将其转换为所需格式
var枚举={
“1”:“你好”,
“2”:再见,
“3”:“塔塔”
};
让op=Object.entries(enums.map([key,value])=>({number:key,word:value}))
控制台日志(op)
需要创建映射类型的对象,然后使用get获取值
方法,如outData.get(“1”)
要获取数据,请使用outData.get(“key”)
现在输出的数据会像-
var obj = {
'1': 'HELLO',
'2': 'BYE',
'3': 'TATA'
};
var outData = new Map();
Object.keys(obj).forEach(function (e) {
outData.set(e, obj[e])
});
另一种方法是使用循环在
枚举
键上迭代,并构造所需的对象数组
var枚举={
“1”:“你好”,
“2”:再见,
“3”:“塔塔”
};
设res=[];
用于(输入枚举)
{
res.push({number:key,word:enums[key]});
}
控制台日志(res)代码>
.as控制台{背景色:黑色!重要;颜色:石灰;}
.as console wrapper{max height:100%!important;top:0;}
您可以使用映射条目
var enums={1:'你好',2:'再见',3:'塔塔'},
objects=Object.entries(enum.map)([number,word])=>({number,word}));
console.log(对象)代码>
.as控制台包装器{max height:100%!important;top:0;}
您可以与foreach一起使用,并将其推送到如下数组中
var枚举={
“1”:“你好”,
“2”:再见,
“3”:“塔塔”
};
变量枚举数组=[]
Object.entries(enums.forEach(([key,value])=>enumArray.push({number:key,word:value}));
log(枚举数组)代码>您可以使用Object.key和map
var obj={
“1”:“你好”,
“2”:再见,
“3”:“塔塔”
};
const result=Object.keys(obj.map)(el=>{
返回{
编号:el,
单词:obj[el]
}
})
console.log(结果)
什么是{'1','HELLO'}
?它既不是有效的JavaScript,也不是有效的TypeScript。为什么您希望{number:'2',word:'TATA'}
?@jcalz显然是一个打字错误。您如何知道这是预期的输出?@brk这是在问题mate中指定的我希望能够将其转换为如下所示的数组,
感谢您的回答。这给了我输出[{“1”:“HELLO”},{“2”:“BYE”},{“3”:“TATA”}]我需要它是[{“1”,“HELLO”},{“2”,“BYE”},{“3”,“TATA”}],而不是:@user7434041您能描述一下您期望的数据类型吗<代码>{“1”,“HELLO”}
不是有效的javascript或typescript。它看起来就像一条巨蟒tuple@user7434041在对象中,需要键/值对,格式为-->key:value
。
var obj = {
'1': 'HELLO',
'2': 'BYE',
'3': 'TATA'
};
var outData = new Map();
Object.keys(obj).forEach(function (e) {
outData.set(e, obj[e])
});
Map(3) {"1" => "HELLO", "2" => "BYE", "3" => "TATA"}