javascript - 推送数组中的值以匹配特定格式
问题描述
我有一个 api 给我我试图推入我的数组的值。我的数组的结构是这样的
this.rolesArr = [
{ label: 'Admin', value: '1' },
{ label: 'Manager', value: '2' },
{ label: 'Recruiter', value: '3' },
{ label: 'Operational', value: '4' }
];
我收到的数据是这样的
{1: "System Admin", 2: "Internal Account Manager", 3: "CAT Manager", 4: "HR Admin", 5: "HR Manager", 6: "HR Recruiter", 7: "Candidate", 8: "Operations administrator"}
如何将其推送到数组以匹配结构?
我正在尝试这个,但被卡住了
for(let i = 0; i < roles.roles.length; i++) {
this.rolesArr.push([ { label: , value: '1' }])
}
解决方案
您可以使用Object.entries
将键值对作为数组获取,然后使用Array#map
方法生成数组。
let data = {1: "System Admin", 2: "Internal Account Manager", 3: "CAT Manager", 4: "HR Admin", 5: "HR Manager", 6: "HR Recruiter", 7: "Candidate", 8: "Operations administrator"};
let res = Object.entries(data).map(([value, label])=>({ label, value }))
console.log(res)
要将这些值添加到现有数组中,请使用带有方法的Spread 语法。Array#push
this.rolesArr.push(...res)
推荐阅读
- python - 有一个火球类功能,当我发送垃圾邮件“f”时它仍然存在
- angularjs - 使用角度重复分页(角度 1.2)
- c# - 对数组中元素的多次引用与将该元素分配给变量
- android - java.lang.VerifyError:验证程序拒绝了类 kotlin.UByte
- vue.js - 如何修复 vue.js 中的 BrowserslistError?
- python - How to extract a substring from a string in python between a marker and the nth occurrence of another marker
- python - 到达数据框中的每个单元格
- asp.net-mvc - 如何在数据源读取方法后更新(重新加载)剑道网格的列?
- firebase - Firebase orderBy 不起作用(当 orderBy 字段相同时)
- java - 询问非原始数组列表