在数组内部获取对象值/状态之一

时间:2019-04-13 02:50:57

标签: javascript arrays reactjs object

内部具有4个属性的对象数组。我想获取该数组内所有对象内的特定属性的值。

这是我使用的一些代码

state = {
 Controls: [{
        id: null,
        property: '',
        description: '',
        part: '',
    }]
}

getPropertyValue(){
    const  {propertyValue} = document.querySelector('#property').value;
    if (propertyValue=== 1){
        return 
             <Input>  
               <option>1</option>
               <option>2</option>;
             </Input>;
    }
    if (propertyValue === 2){
        return   
             <Input>
               <option>3</option>
               <option>4</option>
             </Input>;
    } else {
        return '';
    }
}

这是render()return()内部的属性选择输入

  <Input
        type="select" 
        name="property" 
        id="property" 
        onChange={(e) => this.onChange(i, e.target.value, 
        'property')} value={this.getValue(i, 'property')}

        placeholder="type"
 >
  <option value="1">value 1</option>
  <option value="2">value 2</option>
   </Input>

我希望一旦用户在“属性选择输入”中选择了一个选项,结果就会显示另一个选择输入。属性输入中的选定值将确定将在表单中显示或添加哪些选择输入。

---问题是该属性输入可以不止一个(因为我有一个“添加按钮”,一旦单击该按钮,便会添加一个新的属性输入)。我想从属性输入(数组中的对象属性)获取所有值。 ---

1 个答案:

答案 0 :(得分:0)

您可以使用array.map函数遍历数组并返回任何属性的值。

getValuesOfProperty(propertyName){
return this.state.Controls.map(object => object[propertyName]);
}

// To get all the ids inside array
const ids = getValuesOfProperty('id');

// To get all the descriptions inside array
const descriptions = getValuesOfProperty('description');