beh*_*aji 1 typescript angular
我有一个像这样的Json数组:
[{"name":"ip","children":{"label":"ip","value":"","type":"text","validation":"{ required: true}"}}
,{"name":"test","children":{"label":"test","value":"","type":"text","validation":"{ required: true}"}}
,{"name":"join","children":{"label":"join","value":"","type":"text","validation":"{ required: true}"}}
,{"name":"myform","children":{"label":"myform","value":"","type":"text","validation":"{ required: true}"}}]
Run Code Online (Sandbox Code Playgroud)
我应该将一个对象传递给这样的组件
export const person = {
ip: {
label: 'ip',
value: '',
type: 'text',
validation: { required: true }
},
test: {
label: 'test',
value: '',
type: 'text',
validation: { required: true }
},
join: {
label: 'join',
value: '',
type: 'text',
validation: { required: true }
},
myform: {
label: 'myform',
value: '',
type: 'text',
validation: { required: true }
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
您可以使用此.reduce功能。
它将遍历数组,并允许您将其转换为单个值(在这种情况下为对象)。
(请记住,在您的原始数组中,validation是字符串,而不是对象)
let arr = [{"name":"ip","children":{"label":"ip","value":"","type":"text","validation":"{ required: true}"}}
,{"name":"test","children":{"label":"test","value":"","type":"text","validation":"{ required: true}"}}
,{"name":"join","children":{"label":"join","value":"","type":"text","validation":"{ required: true}"}}
,{"name":"myform","children":{"label":"myform","value":"","type":"text","validation":"{ required: true}"}}]
// Transform the array
let result = arr.reduce((res, item) => {
// Add the value into the result object
res[item.name] = item.children;
return res;
}, {});
console.log(result);Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里减少
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |