Javascript-为对象项分配另一个对象的值

时间:2019-06-18 22:18:30

标签: javascript

我有一个对象包含很少的项目,并且我想从另一个对象更新一个属性options的值。

对象1:

structure = [
        {
            id: 'name',
            label: 'Name',
            filterType: 'text',
            filterOn: 'contains'
        },
        {
            id: 'address',
            label: 'Address',
            filterType: 'text',
            filterOn: 'contains'
        },
        {
            id: 'phone',
            label: 'Phone',
            filterType: 'select',
            filterOn: 'contains',
            options: [{ label: 'abc', value: 'abc' },
                    { label: 'xyz', value: 'xyz' },
                    { label: 'mno', value: 'mno' }]
        }
    ];

如果id是phone,那么我想从对象2 phoneList中获取值并将其分配给选项,而不是对其进行硬编码。

  options: [{ label: 'abc', value: 'abc' },
                   { label: 'xyz', value: 'xyz' },
                   { label: 'mno', value: 'mno' }]
       }
   ];

对象2是

this.props.phoneList = [{name: 'aaa', age: 11},{name : 'bbb' , age : 12}, and so on

]

标签和值将为this.props.phoneList [i] .name

如何遍历此方法并从另一个对象获取最新值

1 个答案:

答案 0 :(得分:0)

首先使用filter来标识ID为phone的对象。然后使用map以所需格式转换this.probs.phoneList并分配给options

structure.filter (x => x.id == 'phone')[0].options = this.probs.phoneList.map (x => ({label: x.name, value: x.name}));